Unity 2.0 中的 XML 配置更改
我们刚刚将一个项目从 prism 2.0 升级到 prism 4.0,并且 Unity 遇到了问题。显然,unity 2.0 容器 XML 配置发生了一些变化,因为我们得到了第一个错误“无法识别的元素'typeConfig'”。这是代码:
//------------------------ App.config
<configSections>
<section name="runDataParserConfiguration" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
</configSections>
<runDataParserConfiguration>
<typeAliases>
<typeAlias alias="IRunDataDispatcher" type="RunDataParser.Interface.IRunDataDispatcher, RunDataParser.Interface" />
<typeAlias alias="IRunDataParser" type="RunDataParser.Interface.IRunDataParser, RunDataParser.Interface" />
<typeAlias alias="IRunDataParserArray" type="RunDataParser.Interface.IRunDataParser[], RunDataParser.Interface" />
<typeAlias alias="Dispatcher" type="RunDataParser.Common.Dispatcher, RunDataParser.Common" />
<typeAlias alias="Parser1" type="RunDataParser.Parser1, RunDataParser" />
<typeAlias alias="Parser2" type="RunDataParser.Parser2, RunDataParser" />
<typeAlias alias="Parser3" type="RunDataParser.Parser3,RunDataParser" />
<typeAlias alias="Parser4" type="RunDataParser.Parser4, RunDataParser" />
<typeAlias alias="Parser5" type="RunDataParser.Parser5, RunDataParser" />
<typeAlias alias="Parser6" type="RunDataParser.Parser6, RunDataParser" />
<typeAlias alias="Parser7" type="RunDataParser.Parser7, RunDataParser" />
<typeAlias alias="Parser8" type="RunDataParser.Parser8, RunDataParser" />
<typeAlias alias="Parser9" type="RunDataParser.Parser9, RunDataParser" />
</typeAliases>
<containers>
<container>
<types>
<type type="IRunDataParser" mapTo="Parser1" name="parser1" />
<type type="IRunDataParser" mapTo="Parser2" name="parser2" />
<type type="IRunDataParser" mapTo="Parser3" name="parser3" />
<type type="IRunDataParser" mapTo="Parser4" name="parser4" />
<type type="IRunDataParser" mapTo="Parser5" name="parser5" />
<type type="IRunDataParser" mapTo="Parser6" name="parser6" />
<type type="IRunDataParser" mapTo="Parser7" name="parser7" />
<type type="IRunDataParser" mapTo="Parser8" name="parser8" />
<type type="IRunDataParser" mapTo="Parser9" name="parser9" />
<type type="IRunDataDispatcher" mapTo="Dispatcher" name="runDataDispatcher" />
<type type="Presentation.RawDataManagement.Wrapper.ParserDispatcherWrapper, RawDataManagement">
<typeConfig>
<constructor>
<param name="runDataDispatcher" parameterType="Dispatcher" />
<param name="runDataParsers" parameterType="IRunDataParserArray">
<array>
<dependency name="parser1" />
<dependency name="parser2" />
<dependency name="parser3" />
<dependency name="parser4" />
<dependency name="parser5" />
<dependency name="parser6" />
<dependency name="parser7" />
<dependency name="parser8" />
<dependency name="parser9" />
</array>
</param>
</constructor>
</typeConfig>
</type>
</types>
</container>
</containers>
</containers>
//------------------------------------------------ ----
我评论了 typeConfig 节点并收到错误“没有找到有效的属性来构造参数 runDataDispatcher 的值。请检查配置文件。”
之后并做了一些研究,我删除了parameterType属性,但这不起作用。 我注释了 typeAliases 节点并将 typeAlias 节点更改为别名,还注释了 types 节点(在节点下)并更改其子节点类型以进行注册。这些都不起作用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Unity 版本 1.2 和 2 之间的 XML 配置发生了变化。
正如您提到的
现在是
和
> 应该是
。您可以删除< /代码> 标签。
标签、
标签、
和如果将部分名称从“runDataParserConfiguration”更改为“unity”可能对您有帮助,那么您应该能够使用智能感知来指导配置。配置后,如果您愿意,您可以随时将其更改回“runDataParserConfiguration”。
您的配置将类似于:
The XML configuration has changed between Unity versions 1.2 and 2.
As you mention
<typeAlias>
is now<alias>
and<type>
should be a<register>
.You can remove the
<typeAliases>
tags,<containers>
tags,<types>
and<typeConfig>
tags.If might be helpful for you to change the section name from "runDataParserConfiguration" to "unity" then you should be able to use intellisense to guide the configuration. After configuration you could always change it back to "runDataParserConfiguration" if you like.
Your config will look something like:
尽管 @RandyLevy 的回答帮助我解决了大部分问题,但我还需要进行一些更改。这些内容不在 OP 文件中,但我会为遇到 Unity 1.2 到 2.0 升级问题的任何人添加它们。
在我的应用程序中,依赖项不是通过构造函数注入的,而是通过公共属性注入的(不要问为什么)。
因此,我有如下配置元素:
可以修改为:
Unity 配置架构 可能会对您提供其他元素方面的帮助。
Although the answer by @RandyLevy helped me with most of the elements, I needed to make a few more changes. Those were not in the OP's file, but I will add them for anyone running into Unity 1.2 to 2.0 upgrade issues.
I my application, dependencies are not injected through the constructor, but through public properties (do not ask why).
So, I have configuration elements like:
that can be modified to:
The Unity Configuration Schema will may help you with yet other elements.