2012-06-22 73 views
1


我試圖在數據庫屬性中保存時發出映射器的問題。
在第一我映射這個類(它的工作好):發送映射器和通用方法

[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; 
    } 
} 

,如果你CCAN所有映射沒有工作=(
,請幫助我。如果你想我可以提供必要的信息

PS要說實話,我想轉移到一個字符串和背部,所以每天至少工作

UPD:我沒有嘗試過的方法public T GetValue<T>() ...它的工作原理...

回答

1

抱歉,但我覺得非常回答quicly。
在映射我必須寫這個:

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); 
}