2015-04-03 49 views
0

是否有任何選項如何使用PostSharp執行此操作?PostSharp automapper

class MyObject 
{ 
    public User User {get; set;} 
    public MyObject() 
    { 
     User = new User(); 
    } 

    public static FromMyObjectDTO(MyObjectDTO myObjectDTO) 
    { 
     //This should be by PostSharp, I want use this in many class, but I do not want use reflection 
     return new MyObject{User.Name = myObjectDTO.UserName }; 
    } 
} 

class MyObjectDTO 
{ 
    public string UserName {get; set;} 
} 

我在StackOverflow上找到了一些問題,但它是從2009年開始的,那就是爲什麼我再次詢問。

+0

你的意思是你想自動實現'FromMyObjectDTO'的主體?你想如何使用該方法?班級和DTO對應的班級是否具有相同的屬性?請嘗試更詳細地解釋,因爲它不清楚(對我)你試圖達到什麼。 – 2015-04-04 09:29:45

回答

0

如果你創建了一個方面,你打算使它成爲一般,所以你可以在很多類中應用它(就像你說的那樣)。否則,創建一個方面並不值得,而是直接在類中的方法中編寫代碼(你試圖避免的)。

如果方面不知道可以應用的所有類的類型(也不應該),也不知道它的DTO,那麼這方面怎麼知道要設置哪些字段(屬性)或從哪裏獲取值從?

我認爲你必須使用反射。我沒有看到另一種方式。這是您可以瞭解對象中字段和屬性的存在的方式。 (和我的意思是方面)。