В моем приложении есть необходимость создавать реализации интерфейса, которые зависят от типа объекта, в котором они используются. Для этого я решил реализовать потомка SimpleProvider, который в терминах классического примера Ninject должен идтикак:
public class MyProvider: Provider<IWeapon>
{
protected override IWeaponCreateInstance(IContext context)
{
//if the weapon user is of type samurai
{
return new Katana();
}
//if the weapon user implements IHorseman
{
return Kernel.Get<IHorsemanWeapon>();
}
return new Sword;
}
}
В моем конкретном случае я хочу использовать LogManager.GetLogger (type.FullName).Проблема для меня - отсутствие исчерпывающего описания IContext или неспособность найти его - и поэтому я не знаю, как получить тип из него.