2012-07-12 48 views
1

似乎沒有可能讓wcf ria域服務方法具有返回類型,該類型是抽象類。我無法找到任何表示不允許的引用,但是在相應的客戶端項目中生成的代碼中沒有任何具有抽象類類型(輸入或輸出)參數的方法。作爲wcf ria方法返回的抽象類

是否有解決方法,我可以讓方法QryAddressByAddressId可供Silverlight客戶端在域服務中調用?

[EnableClientAccess()] 
public class AddressQuerySvcDomainSvc : DomainService 
{ 
    public AddressBase QryAddressByAddressId(string sAddressId) 
    { 
     ... 
    } 
} 


[DataContract()] 
[KnownType(typeof(NumberedAddress))] 
[KnownType(typeof(IntersectionAddress))] 
public abstract class AddressBase 
{ 
    ... 
} 

[DataContract()] 
public partial class NumberedAddress : AddressBase 
{ 
    ... 
} 

[DataContract()] 
public partial class IntersectionAddress : AddressBase 
{ 
    ... 
} 
+0

我發現,表示繼承基準只允許實體類型。 [msdn鏈接](http://msdn.microsoft.com/en-us/library/ee707366(VS.91).aspx)。看起來好像我需要爲每個繼承類型使用多個方法。 – trouta 2012-07-16 15:45:13

回答

0

您的查詢方法必須符合命名約定,使用屬性或兩者。

public AddressBase QueryAddressByAddressID(...) 

public AddressBase GetAddressByAddressID(...) 

[Query] 
public AddressBase QryAddressByAddressID(...) 
+0

我忽略了指出我返回的這些對象是POCO,並且我執行一個InvokeOpertion來檢索數據。添加[Invoke]屬性給我一個名爲'QryAddressByEASAddressId'的操作錯誤不符合所需的簽名。 – trouta 2012-07-13 23:19:34