首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XML文件中配置Windsor IoC - XML元素值中的特殊聊天字符

从XML文件中配置Windsor IoC - XML元素值中的特殊聊天字符
EN

Stack Overflow用户
提问于 2012-03-05 00:18:29
回答 1查看 1.8K关注 0票数 1

我用的是城堡温莎IoC我想从XML文件配置IoC中的对象。类仅是具有某些属性的POCO。

我的问题是,属性的值是包含特殊字符的字符串。

例如,下面是我用来在IoC中配置对象的XML。

代码语言:javascript
复制
<?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#代码:

代码语言:javascript
复制
_container.Install(Configuration.FromXmlFile("PkcCoreSettings\\PkUrls.xml"));
var urls = _container.Resolve<Pkrls>();
Assert.IsNotNull(urls);

此代码崩溃,因为元素LogOn包含带有特殊字符的字符串。

我得到了这个错误:

代码语言:javascript
复制
{"Error processing node resource FileResource: [PkUrls.xml] [filepath]"}

InnerException:

代码语言:javascript
复制
{"An error occurred while parsing EntityName. Line 11, position 61."}

StackTrace:

代码语言:javascript
复制
  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?

我不确定这是否可能

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-05 00:26:15

您需要将&转义为&amp;,因为&是XML中的特殊字符:

代码语言:javascript
复制
<LogOn>https://pk.zet.com/overenie?isWap=0&amp;uri=http%3A%2F%2Fpk.zet.com%2F</LogOn>

或者,您可以将其编写为CDATA

代码语言:javascript
复制
<LogOn><![CDATA[https://pk.zet.com/overenie?isWap=0&uri=http%3A%2F%2Fpk.zet.com%2F]]></LogOn>

该URL中没有XML中特殊的其他字符。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9556545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档