1
我有下面的類:StructureMap屬性setter注射開放式泛型使用FillAllPropertiesOfType
public abstract class Query<TResult>
{
protected abstract TResult Result();
public TResult Execute()
{
return Result();
}
public ISession Session { get; set; }
}
我想用財產注射填充會話。這意味着從Query繼承的任何東西都可以使用Session進行查詢。
無論如何..它總是空:(
我有以下StructureMap登記代碼:
public class MyStructureMapRegistry : Registry
{
public MiStructureMapRegistry()
{
Scan(scanner =>
{
scanner.TheCallingAssembly();
scanner.WithDefaultConventions();
For<ISession>().HttpContextScoped().Use(x => x.GetInstance<ISessionFactory>().OpenSession());
FillAllPropertiesOfType<ISession>().Use(x => x.GetInstance<ISession>());
});
}
}
任何人都可以建議我做錯了
感謝
戴夫
您好讀取文檔。似乎BuildUp用於設置已經創建的對象的屬性。就像你的例子..我想自動設置屬性,因爲它描述在這裏:http://structuremap.net/structuremap/ConstructorAndSetterInjection.htm#section7 – CraftyFella 2012-03-07 08:31:15
傑伊,你的答案是100%正確的。原來我正在創建查詢。即通過傳遞StructureMap ..所以它如何設置ISession。爲此,BuildUp是正確的解決方案。謝謝 :) – CraftyFella 2012-03-07 08:56:09