Использование универсального метода расширения для отображения сущности для просмотра модели - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь создать универсальный метод расширения, который работает с любым классом, и сопоставить его данные с другим предоставленным классом.

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

У меня есть класс User, а другой класс UserVM

User dbUser = new User();
UserVM userMapped = dbUser.MapToViewlModel<UserVM>();

А из внутренней реализации метода я буду использовать AutoMapper Mapper.Map ()

Вот мой код

public static class DataMapperExtensions
    {
        public static M MapToViewModel<M>(this T input)
            where T : class
            where M: class
        {
            return Mapper.Map<T, M>(input);
        }
    }

T никогда не компилируется, я даже попробовал код ниже:

public static class DataMapperExtensions<T> where T: class
    {
        public static M MapToViewModel<M>(this T input)
            where M: class
        {
            return Mapper.Map<T, M>(input);
        }
    }

DataMapperExtensions подчеркнуты, говоря, что «Метод расширения должен быть определен не универсальный статический класс».

То, о чем я прошу, вообще возможно? Пожалуйста, дайте мне знать и спасибо заранее.

1 Ответ

1 голос
/ 10 марта 2019

Вам нужно использовать

public static M MapToViewModel<T,M>(this T input)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...