Unity 2.0 中的 XML 配置更改 [英] XML config changes in Unity 2.0

查看:55
本文介绍了Unity 2.0 中的 XML 配置更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们刚刚将一个项目从棱镜 2.0 升级到棱镜 4.0,我们在使用 Unity 时遇到了问题.显然,Unity 2.0 容器 XML 配置有几处更改,因为我们收到第一个错误无法识别的元素 'typeConfig'".代码如下:

we've just upgrade a project from prism 2.0 to prism 4.0, and we're having problems with Unity. Apparently there's several changes in unity 2.0 container XML configuration as we get as our first error " Unrecognized element 'typeConfig' ". Here is the code:

//---------------------- App.config

//----------------------- 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 的值.请检查配置文件."

I commented typeConfig node and got the error "No valid attributes were found to construct the value for the parameter runDataDispatcher. Please check configuration files."

在那之后并做了一些研究,我删除了 parameterType 属性,但这不起作用.我评论了 typeAliases 节点并将 typeAlias 节点更改为别名,还评论了类型节点(在节点下)并将其子节点类型更改为注册.这些都不起作用.

After that and doing some research I removed parameterType attributes but this didn't work. I commented typeAliases node and change typeAlias nodes to alias, also commented types node (under node) and chage its child nodes type to register. Non of this worked.

推荐答案

XML 配置在 Unity 1.2 和 2 版本之间发生了变化.

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>.

您可以删除 标签、 标签、<;typeConfig> 标签.

You can remove the <typeAliases> tags, <containers> tags, <types> and <typeConfig> tags.

如果将部分名称从runDataParserConfiguration"更改为unity"可能对您有帮助,那么您应该能够使用智能感知来指导配置.配置后,如果您愿意,您可以随时将其改回runDataParserConfiguration".

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.

您的配置将类似于:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <section name="runDataParserConfiguration" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
    </configSections>

    <runDataParserConfiguration xmlns="http://schemas.microsoft.com/practices/2010/unity">

        <alias alias="IRunDataDispatcher" type="RunDataParser.Interface.IRunDataDispatcher, RunDataParser.Interface" />
        <alias alias="IRunDataParser" type="RunDataParser.Interface.IRunDataParser, RunDataParser.Interface" />
        <alias alias="IRunDataParserArray" type="RunDataParser.Interface.IRunDataParser[], RunDataParser.Interface" />
        <alias alias="Dispatcher" type="RunDataParser.Common.Dispatcher, RunDataParser.Common" />
        <alias alias="Parser1" type="RunDataParser.Parser1, RunDataParser" />
        <alias alias="Parser2" type="RunDataParser.Parser2, RunDataParser" />

        <container>
            <register name="parser1" type="IRunDataParser" mapTo="Parser1" />
            <register name="parser2" type="IRunDataParser" mapTo="Parser2" />
            <register name="ParserDispatcherWrapper" type="Presentation.RawDataManagement.Wrapper.ParserDispatcherWrapper, RawDataManagement">
                <constructor>
                    <param name="runDataDispatcher"  type="Dispatcher" />
                    <param name="runDataParsers"  type="IRunDataParserArray">
                        <array>
                            <dependency name="parser1" />
                            <dependency name="parser2" />
                        </array>
                    </param>
                </constructor>
            </register>
        </container>

    </runDataParserConfiguration>
</configuration>

这篇关于Unity 2.0 中的 XML 配置更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆