有沒有辦法知道GetDataObject
對象的ISerializable
對象的方法中的SerializationInfo
實例中添加了哪些成員?獲取序列化信息中的值的成員
回答
是:foreach
foreach(SerializationEntry entry in info) {...}
你會原諒沒有注意到這一點,因爲它沒有實現和IEnumerable
API,但是:foreach
不要求它:)
請參閱MSDN爲什麼這提供每個項目:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationentry(v=vs.110).aspx
有沒有出現to be a "contains"方法。有一個GetEnumerator方法可以用來循環。但馬克的foreach建議是更好的:) :)
對於最有用的定義,'GetEnumerator()'*是*'foreach' - 它們本質上是同義詞 –
不知道。謝謝 – RossG
對於完整的上下文,'foreach(obj中的var項){/ *您的代碼* /}'基本上*:'使用(var iter = obj.GetEnumerator()){while(iter.MoveNext()){ var item = iter.Current;/*你的代碼* /}}' –
- 1. 序列化獲取節點信息
- 2. 獲取的信息生成
- 3. 添加成員 - ForEach項目從其他信息獲取價值
- 4. 序列化類的成員
- 5. PHP LDAP獲取作爲組成員的成員的用戶詳細信息
- 6. 動態忽略獲取序列化的數據成員
- 7. 獲取關於Facebook羣組的成員信息
- 8. 基於列值獲取mysql信息
- 9. 序列化和反序列化類中的靜態成員?
- 10. 獲取反序列化值
- 11. 獲取列表中的所有成員
- 12. Silverlight 5序列化信息
- 13. 假序列化信息
- 14. 如何獲取每個列表訂閱狀態的Mailchimp成員信息?
- 15. 獲取在facebook上分享信息的人員列表
- 16. 關於包含無法序列化的成員的序列化
- 17. 獲取序列化屬性的值
- 18. 通過C#中的屬性獲取有關裝飾成員的信息
- 19. C#對象序列化的元信息
- 20. 反序列化訂單信息的序列化
- 21. 從Java對象中讀取成員值序列化到沒有類的光盤
- 22. 包含不可序列化成員的序列化類
- 23. 反序列化對象的新成員
- 24. 僅更改成員的序列化
- 25. 類型OBJECT成員的Wcf序列化
- 26. 劑量dladdr能夠從靜態成員獲取信息?
- 27. Umbraco後端成員信息
- 28. 序列化\反序列化 - 我應該使用Invariant文化信息還是堅持當前的文化信息
- 29. .NET 4.0中,動態獲取有關成員的詳細信息從GetDynamicMemberNames
- 30. 如何通過在Facebook中使用組ID來獲取成員的信息?
有趣!你有什麼想法,爲什麼它不實施'IEnumerable'雖然?爲什麼它會返回一個具體的'SerializationInfoEnumerator'而不是'IEnumerator'?這似乎是一個奇怪的選擇.. – dcastro
@dcastro如果我不得不猜測,IEnumerable的缺乏是一種無法糾正的過失,因爲它不是必需的。自定義迭代器的選擇並不罕見,特別是在代碼早於泛型的情況下,意圖通過使用結構來表示狀態來避免裝箱和分配。即使在泛型代碼中,它也並不少見:List-of-T有一個自定義迭代器,例如。 –
是的,'List'也返回自己的自定義迭代器,實現「拋出異常如果列表已經改變」機制。但它仍然返回僞裝成接口的迭代器。但我同意這可能是爲了避免拳擊 - 我只注意到['SerializationInfoEnumerator'](http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.serializationinfoenumerator(v = vs.110)。 aspx)有兩個'Current'屬性,一個顯式實現返回一個'object',另一個返回'SerializationEntry'。 –
dcastro