我的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.Net.WebProxy
System.Net.Http.HttpClientHandler
System.Net.Http.HttpClient
据我所知(在其他情况下有效),
type
的格式为何会引发此异常?编辑:
请注意,我尝试了是否将
type="<fully qualified type name>, <assembly name>"
添加到", <assembly name>"
值中,结果是为type
而不是HttpClientHandler
引发了相同的异常。 最佳答案
您是否尝试过<namespace>
标签? Documentation
还有CLR类型所需的语法,我在您的XML中看不到。您也可以尝试。 Documentation(此外,文档指出,您需要提供诸如公钥之类的东西,而在指定CLR类型时我从来不需要这样做。)