我使用温莎城堡 IoC。我想从 XML 文件中配置 IoC 中的对象。类只是具有某些属性的 POCO。
我的问题是属性的值是包含特殊字符的字符串。
例如这里是我在 IoC 中用于配置对象的 XML。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<components>
<component id="pokecUrls"
type="Pk.Common.Entities.Communication.PkcUrls, Pk.Common"
lifestyle="singleton">
<parameters>
<LogOn>https://pk.zet.com/overenie?isWap=0&uri=http%3A%2F%2Fpk.zet.com%2F</LogOn>
</parameters>
</component>
</components>
</configuration>
这是C#代码:
_container.Install(Configuration.FromXmlFile("PkcCoreSettings\\PkUrls.xml"));
var urls = _container.Resolve<Pkrls>();
Assert.IsNotNull(urls);
此代码崩溃,因为元素 LogOn 包含带有特殊字符的字符串。
我收到此错误:
{"Error processing node resource FileResource: [PkUrls.xml] [filepath]"}
内部异常:
{"An error occurred while parsing EntityName. Line 11, position 61."}
堆栈跟踪:
at Castle.Windsor.Configuration.Interpreters.XmlProcessor.XmlProcessor.Process(IResource resource) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Windsor\Windsor\Configuration\Interpreters\XmlProcessor\XmlProcessor.cs:line 115
at Castle.Windsor.Configuration.Interpreters.XmlInterpreter.ProcessResource(IResource source, IConfigurationStore store, IKernel kernel) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Windsor\Windsor\Configuration\Interpreters\XmlInterpreter.cs:line 83
at Castle.Windsor.Installer.ConfigurationInstaller.Castle.MicroKernel.Registration.IWindsorInstaller.Install(IWindsorContainer container, IConfigurationStore store) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Windsor\Windsor\Installer\ConfigurationInstaller.cs:line 74
at Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] installers, DefaultComponentInstaller scope) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Windsor\Windsor\WindsorContainer.cs:line 319
它的存在方式是如何在 XML 元素的值中包含特殊字符并将此 XML 文件用于配置 Windows IoC?
我不确定这是否可能