我的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
正确引用配置文件。项目中引用了System
和System.Net.Http
的程序集。
当我在代码中调用UnityContainer.LoadConfiguration()
时会抛出异常:
类型名称或别名System.Net.WebProxy,System不能 解决。请检查您的配置文件并验证此类型 名。
每种类型的具体细节可以在以下链接中看到:
为什么type
的格式是我所知道的(并且在其他情况下有效),type="<fully qualified type name>, <assembly name>"
?
修改:
请注意我已尝试将", <assembly name>"
添加到type
值中,但结果是HttpClientHandler
而不是{{1}引发了相同的异常}}
答案 0 :(得分:1)
您是否尝试过<namespace>
代码? Documentation
我还没有在XML中看到的CLR类型所需的语法。你也可以尝试一下。 Documentation(此外,文档声明您需要提供公钥等内容,这在指定CLR类型时我从未需要这样做。)