У меня есть следующий класс:StructureMap инъекции свойство сеттер с открытым общим использованием FillAllPropertiesOfType
public abstract class Query<TResult>
{
protected abstract TResult Result();
public TResult Execute()
{
return Result();
}
public ISession Session { get; set; }
}
Я хотел использовать инъекции свойство для заполнения сессии. Это означало бы, что любое наследование от Query сможет запросить использование сеанса.
В любом случае .. Это всегда пустой :(
У меня есть следующий код 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>());
});
}
}
Может кто-нибудь предложить, что я делаю неправильно
Благодарности
Dave
Привет читать документы. кажется, что BuildUp используется для установки свойств уже созданного объекта. Как и в вашем примере .. Я хочу, чтобы автоматически задавать свойства, как он описывает здесь: http://structuremap.net/structuremap/ConstructorAndSetterInjection.htm#section7 – CraftyFella
Джей, ваш ответ был на 100% правильным. Оказывается, я обновил запрос. То есть Пропуская StructureMap .. так как он может установить ISession. Для этого правильное решение - BuildUp. Благодаря :) – CraftyFella