2012-05-23 3 views
-1

У меня есть класс, который выглядит как:Как обобщить класс, унаследованный от другого класса

public class InvokeProxy : MarshalRefByObject, IFace 
{ 
    public InvokeProxy(IFace face) 
    { 
     this.Face = face; 
    } 

    private IFace Face { get; set; } 

    public string Execute(string data) 
    { 
     return this.Face.Execute(data) 
    } 
} 

И я поставлена ​​задача сделать его универсальным. Так как я не могу наследовать от родового класса, я несколько застрял, кто-нибудь знает обходное решение?

+0

Какая часть класса вы, как ожидается, сделать общий? – cadrell0

+0

@ cadrell0 Я должен сделать общий класс InvokeProxy. – lowerkey

+0

по умолчанию вы имеете в виду InvokeProxy generic? или что-то другое? – YavgenyP

ответ

1

Я не уверен, что вы хотите сделать, сделав InvokeProxy в InvokeProxy<T> ... это поможет?

public class InvokeProxy<T> : MarshalRefByObject, IFace where T : IFace 
{ 
    public InvokeProxy(T face) 
    { 
     this.Face = face; 
    } 

    private T Face { get; set; } 

    public string Execute(string data) 
    { 
     return this.Face.Execute(data); 
    } 
} 
+0

Мне нужно будет прочитать об этом, где дело ... – lowerkey

+0

Хорошо, вот что вам нужно начать: это называется ограничениями на параметры типового типа. http://msdn.microsoft.com/en-us/library/d5x73970.aspx –

0

Не совсем уверен, если я понял вопрос ....

public class InvokeProxy<T> : MarshalRefByObject where T : class 
{ 
    public InvokeProxy(T face) 
    { 
     this.Face = face; 
    } 

    private T Face { get; set; } 

    public string Execute(string data) 
    { 
     return this.Face.Execute(data) 
    } 
} 
Смежные вопросы