У меня есть следующий класс и связанный интерфейс с пользовательским атрибутом.
[AttributeUsage(AttributeTargets.Class)]
public sealed class ServiceDefinitionAttribute : Attribute
{
public ServiceDefinitionAttribute(Type type, string name = null)
{
this.Type = type;
this.Name = name;
}
public string Name { get; }
public Type Type { get; }
}
[ServiceDefinition(typeof(IMyTest))]
public class MyTest : DisposableObject, IMyTest
{
/// <summary>The say hello.</summary>
public void SayHello()
{
this.LogAsync("This is the say hello");
}
}
public interface IMyTest
{
void SayHello();
}
Я хочу, чтобы LightInject мог проходить через все загруженные сборки и регистрировать каждый класс, имеющий атрибут ServiceDefinitionAttribute, с помощью ServiceDefinitionAttribute.Тип (интерфейс) и класс, в котором находится интерфейс, и ServiceDefinitionAttribute.Name (имя для регистрации, может быть нулевым)