Тип единого регистра c - PullRequest
       25

Тип единого регистра c

0 голосов
/ 26 февраля 2020

Как зарегистрировать интерфейс generi c, как показано ниже:

public interface ISigQuery<T> where T : SigReadModel, new()

public class SigQuery : ISigtQuery<SigReadModel>
{
}

Я попытался зарегистрироваться следующим образом:

.RegisterType(typeof(ISigQuery<>), typeof(SigQuery))(new ContainerControlledLifetimeManager())

Я получаю сообщение об ошибке:

Ожидается имя метода

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Поскольку SigQuery реализует ISigtQuery<SigReadModel>, вам нужно будет зарегистрировать его по этой ISigtQuery<T> закрытой generi-версии *1003*: "

.RegisterType(
    typeof(ISigQuery<SigReadModel>),
    typeof(SigQuery),
    new ContainerControlledLifetimeManager());

. Вы можете использовать generi c RegisterType перегрузка:

.RegisterType<ISigQuery<SigReadModel>, SigQuery>(
    new ContainerControlledLifetimeManager());
0 голосов
/ 26 февраля 2020

В соответствии с использованием RegisterType вам необходимо изменить:

.RegisterType(typeof(ISigQuery<>), typeof(SigQuery))(new ContainerControlledLifetimeManager())

на

.RegisterType(typeof(ISigQuery<>), typeof(SigQuery), new ContainerControlledLifetimeManager())
...