Autofac не использует атрибуты. Просто сделайте общедоступными нужные свойства и убедитесь, что они имеют set
, а Autofac сделает все остальное.
var builder = new ContainerBuilder();
// Register the type you want the properties wired up
builder.RegisterType<YourType>().PropertiesAutowired();
// You have to register the thing you want injected to - the value of the property
// and it has to be registered to expose the type of the property. So if the property
// being injected is type `Interface` then make sure you say that here.
builder.RegisterType<AClass>().As<Interface>();
Если вы действительно хотите контролировать, какие свойства вводятся с помощью атрибута - что я не рекомендую, потому что не очень хорошо, когда вещи, связанные с DI, переплетаются с вашей бизнес-логикой - есть рабочий пример в репо Autofac в виде модульного теста . В этом примере показано, как создать собственный настраиваемый атрибут и использовать настраиваемый селектор свойств Autofac для подключения только тех свойств, которые имеют настраиваемый атрибут.