[英]How can I Implement an interface on a returned class and keep its data?
我需要在WCF服務返回的類中實現接口。 我該怎么做並保留服務返回的數據?
我嘗試了這個:
public class ClientDerived: Client, ImyInteface
{
public string myInterfaceMethod()
{
return "MyInterface Implemented";
}
}
然后像這樣使用它:
ClientDerived myClient= new ClientDerived();
myClient = (ClientDerived) myService.GetClient();
但是,當我將基類轉換為派生類類型時,出現編譯錯誤。 所以我的問題仍然存在:如何在wcf返回的類上實現新接口並保留其數據? 謝謝!
您不能向下轉換類以添加功能。 在C#中是不可能的。 如果您擁有的只是普通的Animal
,就不能僅僅因為希望它喵喵叫就將其轉換為Cat
。
但是,您應該能夠將接口添加到WCF框架已自動為您生成的代理類中,即將ImyInterface
直接添加到Client
。 由於默認情況下自動生成的類是partial
的,因此您可以擴展它們:
public partial class Client : IMyInterface
{
public string myInterfaceMethod()
{
return "MyInterface Implemented";
}
}
注意:代理類通常位於項目名稱空間的子名稱空間中(例如MyProjectNamespace.MyRemoteService
),因此請確保將擴展名放在相同的名稱空間中。 如果您不知道名稱空間,請檢查對象瀏覽器 ( Ctrl + Alt + J )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.