1
我想有我自己的注入屬性,這樣我就不會將我的代碼耦合到特定的IOC框架。我有一個自定義注入屬性,我的代碼用來表示應該注入一個屬性。如何在使用StructureMap時爲屬性使用自定義注入屬性?
public class CustomInjectAttribute : Attribute {}
下面
虛擬的例子...
public class Robot : IRobot
{
[CustomInject]
public ILaser Zap { get; set; }
...
}
在Ninject,你可以設置一個注射啓發式地發現的屬性,並注入等;
public class NinjectInjectionHeuristic : NinjectComponent, IInjectionHeuristic, INinjectComponent, IDisposable
{
public new bool ShouldInject(MemberInfo member)
{
return member.IsDefined(typeof(CustomInjectAttribute), true);
}
}
然後向內核註冊啓發式。
Kernel.Components.Get<ISelector>().InjectionHeuristics.Add(new NinjectInjectionHeuristic());
我將如何去實現這與StructureMap。我知道StructureMap有它自己的SetterProperties和屬性,但我正在尋找一種方法來解耦,就像你在上面的例子中使用Ninject一樣。
這正是我之後。謝謝! – 2010-09-19 05:16:23