我有一個class MyClass
包含一個private List<MySecondClass> myList
。序列化Web服務中的封裝列表
public IEnumerable<MySecondClass> MyList
{
get { return myList.Select(a => a); }
}
列表是通過公共AddItem(MySecondClass itemToAdd)
和ClearItems()
方法修改:該列表是通過一個getter如下曝光。我相信這是一個正確的封裝列表。
的問題在於,我需要經由SOAP MyClass
型(含有myList
)的對象傳遞給web服務,其填充myList中(使用AddItem()
方法),然後返回該對象。
但是,當webmethod返回類時,序列化後myList爲空。我懷疑這是因爲我沒有myList的setter,這導致列表在序列化過程中不被設置。
這是一個很好的假設,還是我的方式?如果問題是我認爲的問題,有沒有一種方法可以允許從webmethod成功傳遞列表而不破壞封裝(我不想公開一個通用列表)?
是否有你使用ASMX而不是WCF的理由? – 2011-04-15 20:15:21
@John原因是這是對WCF之前很久以前創建的現有應用程序的增強,因此我們所有的服務仍然是asmx。 – Andrew 2011-04-25 20:54:59