Unity コンテナーによってファイル システムのログとして管理されるサービスで発生したすべてのアクションを追跡します。IService という名前のインターフェイスを定義でき、他のすべてのインターフェイスまたは実装はそれを継承する必要があると思います。一方で、ログをファイルに保存するカスタム インターセプト動作またはコール ハンドラを開発したいと考えています。
残念ながら、このコードを使用してもうまくいかないことがわかりました
IUnityContainer unity = new UnityContainer();
//Interception
unity.AddNewExtension<Interception>();
Interception interception = unity.Configure<Interception>();
unity.RegisterType<IService>(
new DefaultInterceptor(new InterfaceInterceptor()),
new DefaultInterceptionBehavior(new LoggingBehavior()));
string[] configFiles = Directory.GetFiles(".", "*.config");
foreach (string configFile in configFiles)
{
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = configFile };
System.Configuration.Configuration configuration =
ConfigurationManager.OpenMappedExeConfiguration(fileMap,
ConfigurationUserLevel.None);
var unitySection = (UnityConfigurationSection)
configuration.GetSection("unity");
unity = unitySection.Configure(unity);
}
IGateway imapGW = unity.Resolve<IGateway>("ImapGateway");
Unity でインターセプターを使用するのに誤解はありますか? 各サービスのインターセプターを構成せずにすべてを自動的にログに記録するには、この問題にどのように対処すればよいですか?