为什么Unity XML配置无法解析类型?

时间:2015-11-26 13:51:36

标签: c# .net unity-container app-config

我的unity.config中有以下Unity XML配置。

<?xml version="1.0" encoding="utf-8" ?>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
  <container>
    <register type="System.Net.WebProxy, System" name="webProxy">
      <constructor>
        <param name="Address" value="proxy.corporate.com:8080" type="System.String"/>
        <param name="BypassOnLocal" value="false" type="System.Boolean"/>
      </constructor>
    </register>
    <register type="System.Net.Http.HttpClientHandler, System.Net.Http" name="proxyClientHandler">
      <property name="Proxy">
        <dependency name="webProxy"/>
      </property>
      <property name="PreAuthenticate" value="true"/>
      <property name="UseDefaultCredentials" value="false"/>
    </register>
    <register type="System.Net.Http.HttpClient, System.Net.Http">
      <constructor>
        <param name="handler">
          <dependency name="proxyClientHandler"/>
        </param>
      </constructor>
    </register>
  </container>
</unity>

app.config正确引用配置文件。项目中引用了SystemSystem.Net.Http的程序集。

当我在代码中调用UnityContainer.LoadConfiguration()时会抛出异常:

  

类型名称或别名System.Net.WebProxy,System不能   解决。请检查您的配置文件并验证此类型   名。

每种类型的具体细节可以在以下链接中看到:

为什么type的格式是我所知道的(并且在其他情况下有效),type="<fully qualified type name>, <assembly name>"

修改

请注意我已尝试将", <assembly name>"添加到type值中,但结果是HttpClientHandler而不是{{1}引发了相同的异常}}

1 个答案:

答案 0 :(得分:1)

您是否尝试过<namespace>代码? Documentation

我还没有在XML中看到的CLR类型所需的语法。你也可以尝试一下。 Documentation(此外,文档声明您需要提供公钥等内容,这在指定CLR类型时我从未需要这样做。)