故障現象:無類型定義串行:System.Array的如何序列化數組?
由於所有的C#陣列從Array類繼承,我認爲這將在protobuf網
[ProtoMember(1)]
public Array SomeKindOfArray = new int[]{1,2,3,4,5};
[ProtoMember(2)]
public List<Array> SomeKindOfList = new List<Array>();
我必須要註冊陣列與有效RuntimeTypeModel?
m.Add(typeof (Array), true); // does not seem to help
嘗試:
new int[]{1,2,3,4} // works
(object)new int[] { 1, 2, 3, 4 } // does not work
(Array)new int[] { 1, 2, 3, 4 } // does not work
另一種可能的解決方案(找不到SO URL現在):
有一個基本類型的類項的列表。
裹每種類型。例如
class TheBase{}
class ArrayOfInt { public int[] value;}
然後,這將成爲轉換和從一個包裝的列表之一。有更簡單的方法嗎?
我喜歡的名字。我將找到一種方法將它們整合到我的下一個項目中。他們將成爲傻瓜包裝! –
任何想法將友好的.net轉換爲protobuf-net的好方法?我想一個擴展方法或兩個與if(obj是int [])語句的列表可能會這樣做。感謝您的解釋。 – sgtz
@sgtz你可以重新短語「從友好的.net轉換爲protobuf網」?我不明白你的意思 –