Я пытаюсь получить ссылку на мой контейнер в статическом классе в пределах своего домена, так что я могу сделать что-то вроде этого:Получение ссылки на IUnityContainer в статическом классе
public static class DomainEvents
{
public static IUnityContainer Container { get; set; }
// ...
public static void Do<T>(T args) where T : IMyInterface
{
foreach (var s in Container.ResolveAll<IDoSomething<T>>())
s.DoSomething(args);
}
}
я, очевидно, не вводить его с помощью конструктора , есть ли другой способ, с помощью которого я могу справиться с этим, чтобы я мог разрешить регистрацию? Чтение некоторых документов не помогло. Любая помощь будет оценена.
Зачем вам это нужно, чтобы быть статическим классом? Если вы используете IoC, должно быть так же просто сделать это обычным классом и ввести его там, где это необходимо. – millimoose
@millimoose: класс DomainEvents, вероятно, вызывается сущностями в контексте разработки Driven Design, и вы не можете (или не должны) выполнять инъекцию конструктора в своих сущностях. Тем не менее, лучше было бы добавить интерфейс 'IDomainEvents' в методах сущностей (используя метод инъекции) вместо ссылки на статический класс. – Steven
@Steven Даже в этом случае я бы, вероятно, сделал что-то вроде следующего: http://rogeralsing.com/2009/05/30/entity-framework-4-entity-dependency-injection/ (Предполагая, что используемая ORM позволяет достаточно быстро подключиться к жизненному циклу объекта.) – millimoose