Я использую Ninject и хочу внедрить свойство моей модели. У меня есть следующая модель
public class TCFormModel
{
public string Name { get; set; }
public IPNConBut pConBut { get; set; }
}
Я хочу ввести IPNConBut
с моим классом ConBut
, который реализует IPNConBut
.
public class ConBut : IPNConBut { ... }
Как я могу это сделать?
ПОЗЖЕ ИЗМЕНИТЬ - ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Моя модель используется в связующем, и она терпит неудачу, когда пытается создать экземпляр TCFormModel. Это имеет смысл, но как этого избежать? Я пробовал с двумя конструкторами, один без параметров и один с параметром привязки. Я также пробовал [Inject] для свойства и даже для конструктора, и у меня были те же результаты. Конструктор никогда не используется.
public class TCFormModelBinder : IModelBinder
{
private const string sessionKey = "TCFM_Model";
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
TCFormModel model = null;
if (controllerContext.HttpContext.Session != null)
{
model = (TCFormModel)controllerContext.HttpContext.Session[sessionKey];
}
if (model == null)
{
model = new TCFormModel();
if (controllerContext.HttpContext.Session != null)
{
controllerContext.HttpContext.Session[sessionKey] = model;
}
}
return model;
}
}
Заводской интерфейс:
public interface IPNConButFactory
{
IPNConBut Create();
}