Ninject метод get устанавливает аргумент конструктора в значение null
Я использую Ninject для реализации IoC/DI в моем приложении. Это работало хорошо во всем приложении, за исключением одного случая, когда я устанавливаю аргумент конструктора типа User Defined Class.
Этот класс имеет четыре свойства, все они имеют тип, определяемый пользователем, все они являются сериализованными перечислениями.
Теперь, когда я разрешаю зависимость от ядра, он выдает мне исключение, так как значения аргументов конструктора устанавливаются в нуль. Я не знаю, почему это так.
Это из-за seriazlizeable перечислений или что-то еще. Я не могу изменить свои типы, поэтому, пожалуйста, предложите мне что-нибудь в контексте, где мне не нужно менять типы.
редактировать
IManager manager = GlobalData.Kernel.Get<IManager> (new ConstructorArgument("context", Context));
// Context Class code is here
public class Context {
public string ContextCode { get; set; }
public Module Module { get; set; }
public Screen Screen { get; set; } }
Модуль и экран являются сериализуемыми перечислениями
1 ответ
Это потому, что ваш контекст, переданный в качестве аргумента конструктора, имеет значение Null.