Я новичок в Autofac и пытаюсь установить общедоступное свойство класса каждый раз, когда он инициализируется. Вот сценарий. У меня много классов, унаследованных от "Entity", которые следуют этому базовому формату ...
public class Person : Entity
{
public virtual DataContext ServiceContext { get; set; }
public string FirstName {get; set;}
...
}
Эти классы обычно создаются с помощью запроса LINQ следующим образом:
var context = SomeContext(connection);
var people = context.Query<Person>().Where(item => item.FirstName == "Joe").ToList();
Я пытаюсь передать объект «context» в свойство ServiceContext класса Person каждый раз, когда он создается. В этом примере это свойство будет установлено для каждого человека в списке людей.
В идеале я бы передал DataContext через конструктор Entity, но проблема в том, что у меня нет доступа к Entity или поставщику Linq, поскольку они получены от третьей стороны. Итак, мой вопрос: используя Autofac, как мне добавить «контекст» в свойство «ServiceContext» каждого класса, производного от «Entity»? Похоже, что событие OnActivating близко к тому, что мне нужно, но я не могу заставить его работать.