Эмиттер маппер и общий метод
У меня есть некоторые проблемы с 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);
}