2013-08-26 3 views
0

У меня есть два класса, где 1 наследуется. Существует ряд других классов, похожих на Acme123Response с разными классами ответов. То есть ApplicationInfo.Можно ли удержать класс от стороннего веб-сервиса?

ПриложениеInfo относится к сторонней веб-службе. Вопрос в том, можно ли добавить ограничение на BuyerResponse, учитывая, что ApplicationInfo и остальные находятся за пределами моего непосредственного контроля?

public class Acme123Response : BuyerResponse<ApplicationInfo> 
{ 
    public Acme123Response(ApplicationInfo response) 
     : base(response) 
    { 
    } 
} 

public abstract class BuyerResponse<T> : ResponseBase 
{ 
    readonly T _response; 

    protected T Response 
    { 
     get { return _response; } 
    } 

    protected BuyerResponse(T response) 
    { 
     _response = response; 

     // Do something else 
    } 
} 
+0

Другими словами, ограничение BuyerResponse должно быть подклассом ApplicationInfo, например? Тогда да, вы должны это сделать. – DavidN

+0

ApplicationInfo - это сторонний класс. Я хотел сдержать T до одного из нескольких классов от сторонних разработчиков, возможно, используя интерфейс или что-то в этом роде. Любые детали относительно того, как к этому можно подойти. – dotnetnoob

ответ

0

Если я правильно понял ваши комментарии, то ваш вопрос вы можете определить базовый интерфейс для классов, определенных в 3-й партии сборки. AFAIK это невозможно (даже если вы можете разветвить источник, это не то, что я хотел бы сделать): лучшее, что я думаю, что вы можете сделать, это определить классы-оболочки/adapters, которые реализуют ваш объединяющий интерфейс, а затем основывают ваш общее ограничение на это.

Это также защищает ваши собственные реализации от сторонних классов с помощью интерфейса, который обычно является чем-то, что вы хотели бы сделать в любом случае.

+0

Думаю, я так понимаю, создаю класс MyWrapperClass, наследующий ApplicationInfo, с интерфейсом IMyWrapperClass – dotnetnoob

 Смежные вопросы

  • Нет связанных вопросов^_^