2011-06-24 174 views
0
public class Access 
{ 
    public Entity eeee { get; set; } 
    public Permission<eeee.GetType()> pppp { get; set; } 
} 

public class Entity 
{ 

} 

public class Permission<T> 
{ 
    public bool CanView {get;set;} 
    public bool CanEdit {get;set;} 
    public bool CanDelete {get;set;} 

} 

public class Photo:Entity 
{ 
} 

public class PhotoPermission:Permission<Photo> 
{ 
    public bool CanTag {get;set;} 
} 

public class Video:Entity 
{ 

} 

public class VideoPermission:Permission<Video> 
{ 
    public bool CanFastForward {get;set;} 
} 

所以,如果eeeePhoto型的,那麼的pppp「類型」應該是Permission<Photo>傳遞類型參數動態地泛型類型

有什麼樣eeee.GetType()

+0

爲什麼不能只改變'public Permission pppp {get;組; }'到'public權限 pppp {get;組; ''? –

回答

1

看起來像你可以很容易地將您的Access類更改爲

public class Access<T> 
{ 
    public T eeee { get; set; } 
    public Permission<T> pppp { get; set; } 
} 
0

通用背後的思想s是通用類型在運行時已知的;因此,你的代碼不會編譯。我建議你使用反射來完成你的任務。