LightInject - регистрация по пользовательскому атрибуту - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть следующий класс и связанный интерфейс с пользовательским атрибутом.

[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 (имя для регистрации, может быть нулевым)

...