Внедрение зависимостей Microsoft и контрвариантностьC#

Место общения программистов C#
Ответить
Anonymous
 Внедрение зависимостей Microsoft и контрвариантность

Сообщение Anonymous »

Я переношу библиотеку на net core. Теперь у нас есть встроенный DI, и я хочу использовать его как можно лучше.

Моя библиотека передает события от серверной части к клиентам-сигнализаторам. Она содержит структуру для проверки события перед отправкой его конкретному клиенту. Моя старая библиотека поддерживала контравариантность, поэтому один обработчик событий может поддерживать все события, если хотите. Подумайте об этом

public class ContravariantHandler : IEventHandler
{
public void Handle(BaseEvent message)
{

}
}

public abstract class BaseEvent { }

public class MyEvent : BaseEvent { }
public class MyEvent2 : BaseEvent { }

public interface IEventHandler
{
void Handle(T message);
}


Выполнение нового ContravariantHandler().Handle(new MyEvent()); и нового ContravariantHandler().Handle(new MyEvent2()); > здесь оба в порядке.

Могу ли я заставить DI-код net core быть правильного типа здесь?

это не работает,

var provider = new ServiceCollection()
.AddTransient()
.BuildServiceProvider();

var contravariance = provider.GetService();


Подробнее здесь: https://stackoverflow.com/questions/549 ... ravariance
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»