Эмиттер маппер и общий метод


У меня есть некоторые проблемы с Emit mapper, когда я пытаюсь сохранить в свойствах базы данных.
Сначала я сопоставил этот класс (он хорошо работает):

[Serializable]
public class ProfileProperty 
{
    public string PropertyValue { get; set; }

    public bool IsVisible { get; set; }

    public ProfileProperty(string value, bool isVisible = true)
    {
        this.PropertyValue = value;
        this.IsVisible = isVisible;
    }

    public ProfileProperty()
    {
        this.IsVisible = true;
    }
}

Я нанес на карту здесь:

var mapper = ObjectMapperManager.DefaultInstance.GetMapper<PollmericaProfile, ProfileModel>();
ProfileModel prof = new ProfileModel();
if (x.User != null)
{
    prof = mapper.Map(x);
}

Но некоторые требования не должны string имущество. Вот почему я решил написать это:

[Serializable]
public class ProfileProperty 
{
    public object PropertyValue { get; set; }

    public bool IsVisible { get; set; }

    public ProfileProperty(object value, bool isVisible = true)
    {
        this.PropertyValue = value;
        this.IsVisible = isVisible;
    }

    public ProfileProperty()
    {
        this.IsVisible = true;
    }

    public T GetValue<T>()
    {
        return (T)this.PropertyValue;
    }
}

И все сопоставления не сработали =(
Если вы можете, помогите мне, пожалуйста. Если хотите, я могу предоставить необходимую информацию.

PS Если честно, хочу перевести на струну и обратно, чтобы хоть работал

UPD: пробовал без метода public T GetValue<T>()... Оно работает...

1 ответ

Решение

Извините за это, но я нахожу ответ очень быстро.
в отображении я должен написать это:

var mapper = ObjectMapperManager
               .DefaultInstance
               .GetMapper<PollmericaProfile, ProfileModel>( new DefaultMapConfig()
               .IgnoreMembers<PollmericaProfile, ProfileModel>(new string[] { "GetValue" }));
ProfileModel prof = new ProfileModel();
if (x.User != null)
{
    prof = mapper.Map(x);
}
Другие вопросы по тегам