0
我的WCF接口看起來是這樣的:與DataContract名稱重命名WCF泛型類屬性
[ServiceContract]
public interface IService
{
[OperationContract]
Foo<String>[] Test();
}
的Foo<T>
類看起來是這樣的:
[DataContract(Name = "FooOf{0}")]
public class Foo<T>
{
public T Value { get; set; }
}
我發佈的WCF服務,並添加服務引用到我的客戶端代碼,然後我使用這種方法是這樣的:
var client = new ServiceClient(new BasicHttpBinding(), new EndpointAddress(@"http://myServer:port/Service.svc"));
FooOfString[] result = client.Test();
但是,我不能acc ESS生成的類的屬性,例如,我不能做到這一點:
var value = result[0].Value; // cannot access property, does not compile
我能夠通過刪除我Foo<T>
類的[DataContract(Name = "FooOf{0}")]
部分做同樣的事情,我可以訪問屬性,問題是生成的類的名稱,它更改爲FooOfStringCHtiIp13
,看起來很醜,我試圖將它重命名爲更易讀。此操作,但是,現在工作:
FooOfStringCHtiIp13[] result = client.Test();
var value = result[0].Value; // can access, compiles
感覺就像一些沒有被序列化,我無法正常使用此。任何想法如何正確實現這一點?
'FooOf {0}'格式生成的類名'FooOfT',其中'T'在我的情況'酒吧' – Peroxy
嘗試將DataMember屬性添加到Value屬性? – Joe
我剛剛試過,因爲你寫你的評論..這是問題 – Peroxy