0
我們已經開發了一個示例項目來處理使用entlib異常處理程序塊和Unity的所有異常。異常 - 無法吞服非空返回類型的方法的異常
當我嘗試使用統一的容器,我收到以下異常, 「不能吞嚥與非空返回類型的方法例外。」
如果我們嘗試調用一個void方法及其工作調用方法精細。
下面是代碼,下面
IUnityContainer unityContainer = new UnityContainer();
unityContainer.LoadConfiguration("Container1");
var service2 = unityContainer.Resolve<IABCServices>("Impl1");
string dd= service2.DoSomething(55);
它的配置文件中給出,
<alias alias="string" type="System.String, mscorlib"/>
<alias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />
<alias alias="transient" type="Microsoft.Practices.Unity.TransientLifetimeManager, Microsoft.Practices.Unity" />
<alias alias="InterceptionConfigurationExtension" type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration" />
<alias alias="EnterpriseLibraryCoreExtension" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Unity.EnterpriseLibraryCoreExtension, Microsoft.Practices.EnterpriseLibrary.Common" />
<alias alias="ExceptionCallHandler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.PolicyInjection.ExceptionCallHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling" />
<alias alias="IABCServices" type="ABC.GGG.Integration.Contracts.SSSService.Interfaces.IABCServices, ABC.GGG.Integration.Contracts" />
<alias alias="ABCServices" type="ABC.GGG.Integration.Implementation.SSSService.ABCServices, ABC.GGG.Integration.Implementation" />
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration" />
<container name="Container1">
<register type="string"></register>
<extension type="EnterpriseLibraryCoreExtension"/>
<extension type="Interception" />
<register type="IABCServices">
<interceptor isDefaultForType="true" type="TransparentProxyInterceptor"/>
</register>
<register name="Impl1" type="IABCServices" mapTo="ABCServices">
<interceptionBehavior type="PolicyInjectionBehavior"/>
</register>
<interception>
<policy name="MyPolicy">
<matchingRule name="exceptionHandling" type="TypeMatchingRule">
<constructor>
<param name="typeName">
<value value="ABC.GGG.Integration.Contracts.SSSService.Interfaces.IABCServices" />
</param>
</constructor>
</matchingRule>
<callHandler name="ExceptionHandlingCallHandler" type="ExceptionCallHandler">
<lifetime type="singleton" />
<constructor>
<param name="exceptionPolicy" dependencyName="Policy" />
</constructor>
</callHandler>
</policy>
</interception>
</container>
</unity>
誰能解釋一下如何解決這個問題?