Enterprise library 6 企业库6.0迁移
在我们的项目中,我们使用Enterprise library 5.0进行异常处理。现在,我们正计划使用Enterprise library 6.0,并且我们面临EnterpriseLibraryContainer.Current在Enterprise library 6.0中不可用的问题 我找到了这个链接 它提到了6.0的LogWriter迁移。我想用同样的方法处理例外情况。 下面是与我们的项目类似的示例代码 EHConfigMgr.csEnterprise library 6 企业库6.0迁移,enterprise-library-6,Enterprise Library 6,在我们的项目中,我们使用Enterprise library 5.0进行异常处理。现在,我们正计划使用Enterprise library 6.0,并且我们面临EnterpriseLibraryContainer.Current在Enterprise library 6.0中不可用的问题 我找到了这个链接 它提到了6.0的LogWriter迁移。我想用同样的方法处理例外情况。 下面是与我们的项目类似的示例代码 EHConfigMgr.cs var builder = new Config
var builder = new ConfigurationSourceBuilder();
var exceptionHandlingBuilder = builder.ConfigureExceptionHandling();
ServiceLocator.Current.GetAllInstances<IExceptionHandlingConfigurator>().ToList().ForEach(c => c.ConfigureExceptinHandling(exceptionHandlingBuilder));
exceptionHandlingBuilder.GivenPolicyWithName("WCF Exception Shielding")
.ForExceptionType<FaultException<ValidationFault>>()
.HandleCustom<WcfRethrowValidationFaultHandler>()
.ThenThrowNewException();
var tempAppConfigPath = Path.GetTempFileName();
File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, tempAppConfigPath, true);
File.SetAttributes(tempAppConfigPath, FileAttributes.Normal);
var configSource = new FileConfigurationSource(tempAppConfigPath, false);
var s = new DictionaryConfigurationSource();
builder.UpdateConfigurationWithReplace(configSource);
EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);
var builder=new ConfigurationSourceBuilder();
var exceptionHandlingBuilder=builder.ConfigureExceptionHandling();
ServiceLocator.Current.GetAllInstances().ToList().ForEach(c=>c.ConfigureExceptionHandling(exceptionHandlingBuilder));
exceptionHandlingBuilder.GivenPolicyWithName(“WCF异常屏蔽”)
.ForExceptionType()
.HandleCustom()
.Then thrownewException();
var tempAppConfigPath=Path.GetTempFileName();
Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,tempAppConfigPath,true);
SetAttributes(tempAppConfigPath,FileAttributes.Normal);
var configSource=new FileConfigurationSource(tempAppConfigPath,false);
var s=新字典配置源();
builder.updateConfiguration WithReplace(配置源);
EnterpriseLibraryContainer.Current=EnterpriseLibraryContainer.CreateDefaultContainer(configSource);
Proxybase.cs
protected ProxyBase()
{
ExceptionManager = EnterpriseLibraryContainer.Current.GetInstance<ExceptionManager>();
}
ProxyBase()受保护
{
ExceptionManager=EnterpriseLibraryContainer.Current.GetInstance();
}
请帮助我在不影响现有功能的情况下更改proxybase。此链接的可能副本解决了如何使用handleexception方法,其中我使用的是exceptionmanager.process方法。