Если вы работаете с .NET 4, почему бы не объединить два варианта и не поместить XAML в App.config
?
using System.Configuration;
using System.Xaml;
using System.Xml;
public class XamlConfigurationSection : IConfigurationSectionHandler
{
public object Create(object parent, object configContext, XmlNode section)
{
return XamlServices.Parse(section.OuterXml);
}
}
Этот пользовательский раздел конфигурации позволяет включить любой объект, описанный как XAML, в App.config
:
<configSections>
<section name="SomeType" type="XamlConfigurationSection, …" />
</configSections>
<SomeType xmlns="clr-namespace:SomeNamespace;assembly=…"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
…
</SomeType>
при условии, что у вас есть тип:
namespace SomeNamespace
{
public class SomeType
{
public SomeType() { … } // XAML requires a parameterless constructor
…
}
}
и, наконец, получить экземпляр этого типа из App.config
с помощью:
var objectOfSomeType = ConfigurationManager.GetSection("SomeType") as SomeType;