Я собираюсь отслеживать все действия, произошедшие в службах, которые управляются контейнером Unity как журналы в файловой системе. Полагаю, я мог бы определить интерфейс с именем IService, и все остальные интерфейсы или реализация должны унаследовать его. С другой стороны, я хотел бы разработать пользовательское поведение перехвата или обработчик вызовов для сохранения журналов в файлах.Как настроить регистрационный перехватчик для всех зарегистрированных типов в Unity?
К сожалению, я обнаружил, что он не работает для меня, используя эти коды
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? Как я могу справиться с этой проблемой, чтобы записывать все автоматически без настройки перехватчика для каждой службы?