Как вы разрешаете экземпляры IInterceptionBehavior из контейнера при использовании StructureMap DynamicProxyInterceptor?
Я перехожу с Unity на StructureMap. Я немного использовал Unception InterceptionBehavior.
Я думал, что мог бы переключить это на использование StructureMap .InterceptWith
и DynamicProxyInterceptor
но у моих перехватчиков есть зависимости, и я не могу понять, как составить перехватчики, используя StructureMap.
var container = new Container(x =>
{
x.For<IMathService>().Use<MathService>()
.InterceptWith(new DynamicProxyInterceptor<IMathService>(new IInterceptionBehavior[]
{
// I WANT TO COMPOSE THESE INTERCEPTORS
new NegatingInterceptor(),
new CachingInterceptor()
}));
});
На данный момент единственное, что я могу подумать, что это может быть решением - это выставить мой IContainer из статического класса IoC и разрешить мои зависимости вручную в моем перехватчике.
В конце концов, я, вероятно, смогу заменить свои динамические прокси декораторами, но я еще не совсем на этом этапе. Я просто хочу как можно скорее запустить и снова запустить его, чтобы я мог доказать, что все остальные изменения были успешными, прежде чем я начну вносить дополнительные изменения.
1 ответ
Хорошо, я идиот, вы просто передаете массив типов вместо экземпляров конструктору DynamicProxyInterceptor
var container = new Container(x =>
{
x.For<IMathService>().Use<MathService>()
.InterceptWith(new DynamicProxyInterceptor<IMathService>(
new Type[]
{
// I WANT TO COMPOSE THESE INTERCEPTORS
typeof(NegatingInterceptor),
typeof(CachingInterceptor)
}));
});