Передача параметра типа динамически в универсальный тип - PullRequest
0 голосов
/ 24 июня 2011
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;}
}

Итак, если eeee имеет тип Photo, то "тип" pppp должен быть Permission<Photo>

Есть ли что-то вроде eeee.GetType()

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Похоже, вы можете очень легко изменить свой Access класс на

public class Access<T>
{
    public T eeee { get; set; }
    public Permission<T> pppp { get; set; }
}
0 голосов
/ 24 июня 2011

Идея обобщенного типа заключается в том, что обобщенный тип известен во время выполнения;следовательно, ваш код не будет компилироваться.Я предлагаю вам использовать Reflection для выполнения вашей задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...