- jamsoft_caldemo2.zip
- JamSoft.CALDemo2
- bin
- Debug
- Release
- External
- Internal
- Modules
- Skins
- Ext
- Microsoft.Practices.Composite.dll
- Microsoft.Practices.Composite.pdb
- Microsoft.Practices.Composite.UnityExtensions.dll
- Microsoft.Practices.Composite.UnityExtensions.pdb
- Microsoft.Practices.Composite.Wpf.dll
- Microsoft.Practices.Composite.Wpf.pdb
- Microsoft.Practices.ObjectBuilder2.dll
- Microsoft.Practices.ObjectBuilder2.xml
- Microsoft.Practices.Unity.dll
- Microsoft.Practices.Unity.xml
- MusicBrainz.dll
- Int
- JamSoft.CALDemo.Modules.ModuleA.Core.dll
- JamSoft.CALDemo.Modules.ModuleB.Core.dll
- JamSoft.CALDemo.Modules.MusicSearch.Core.dll
- JamSoft.CALDemo.Modules.PageManager.Core.dll
- JamSoft.CALDemo.Modules.SettingsManager.Core.dll
- JamSoft.CALDemo.Modules.SkinManager.Core.dll
- JamSoft.CALDemo.Modules.StatusBar.Core.dll
- JamSoft.CALDemo.Modules.ToolBar.Core.dll
- JamSoft.WpfThemes.Utils.dll
- JamSoft.CALDemo.Modules.MusicSearch.Core
- JamSoft.CALDemo.Modules.MusicSearch
- JamSoft.CALDemo.Modules.SettingsManager.Core
- JamSoft.CALDemo.Modules.SettingsManager
- JamSoft.CALDemo.Modules.SkinManager.Core
- JamSoft.CALDemo.Modules.SkinManager
- JamSoft.CALDemo.Modules.ToolBar.Core
- JamSoft.CALDemo.Modules.ToolBar
- JamSoft.CALDemo.UI.BlueTheme
- JamSoft.CALDemo.UI.DefaultTheme
- JamSoft.WpfThemes.Utils
- JamSoftDebuggerSolution.sln
- ModuleA
- ModuleB
- Navigator
- PageManager
- JamSoft.CALDemo.Modules.PageManager.Core
- JamSoft.CALDemo.Modules.PageManager
- PageManager.sln
- Shell
- Skins
- JamSoft.CALDemo.UI.BlueTheme.dll
- JamSoft.CALDemo.UI.DefaultTheme.dll
- StatusBar
- JamSoft.CALDemo.Modules.StatusBar.Core
- JamSoft.CALDemo.Modules.StatusBar
- StatusBar.sln
- JamSoft.CALDemo2.zip
|
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Reflection;
using System.Collections;
using System.Resources;
namespace JamSoft.CALDemo.Modules.SkinManager
{
internal class SkinBamlResolver : MarshalByRefObject, ISkinBamlResolver
{
#region ISkinResolver Members
List<Stream> ISkinBamlResolver.GetSkinBamlStreams(AssemblyName skinAssemblyName)
{
ISkinBamlResolver resolver = this as ISkinBamlResolver;
return resolver.GetSkinBamlStreams(skinAssemblyName, string.Empty);
}
List<Stream> ISkinBamlResolver.GetSkinBamlStreams(AssemblyName skinAssemblyName, string bamlResourceName)
{
List<Stream> skinBamlStreams = new List<Stream>();
Assembly skinAssembly = Assembly.Load(skinAssemblyName);
string[] resourcesNames = skinAssembly.GetManifestResourceNames();
foreach (string resourceName in resourcesNames)
{
ManifestResourceInfo resourceInfo = skinAssembly.GetManifestResourceInfo(resourceName);
if (resourceInfo.ResourceLocation != ResourceLocation.ContainedInAnotherAssembly)
{
Stream resourceStream = skinAssembly.GetManifestResourceStream(resourceName);
using (ResourceReader resourceReader = new ResourceReader(resourceStream))
{
foreach (DictionaryEntry entry in resourceReader)
{
if (IsRelevantResource(entry, bamlResourceName))
{
skinBamlStreams.Add(entry.Value as Stream);
}
}
}
}
}
return skinBamlStreams;
}
private bool IsRelevantResource(DictionaryEntry entry, string resourceName)
{
string entryName = entry.Key as string;
string extension = Path.GetExtension(entryName);
return
string.Compare(extension, ".baml", true) == 0 && // the resource has a .baml extension
entry.Value is Stream && // the resource is a Stream
(string.IsNullOrEmpty(resourceName) || string.Compare(resourceName, entryName, true) == 0); // the resource name requested equals to current resource name
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.