IEnumerable <Interface>的protobuf序列化

cur*_*ity 6 c# protocol-buffers

[ProtoContract] 
class A
{
[ProtoMember(1)]
 public B bbb
{
 get;set; //getter & setter is here
} 
}

[ProtoContract]
public class B : IData
{
///???0
[ProtoMember(1)] 
public IEnumerable <IData> subData
{
get;set; //getter & setter is here
//the setter puts some data inn structure that in fact contains List<T> plus some simple int's
}

///????
public interface  IData: Iface1
{
 ///????
 IEnumerable<Iface3> data2 {get;}
  ///????
 IEnumerable<IData> subdata{get;}
}
Run Code Online (Sandbox Code Playgroud)

当我尝试序列化一个类对象时,我得到一个错误:"没有为类型定义的序列化器:System.Collections.Generic.IEnumerable`1 [IData,namespaceMy,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]

问题是 - 我怎么能序列化和反序列化IEnumerable?

将IEnumerable更改为List <>是一个坏主意((此程序中的大量代码等待IEnumerable并引发大量错误.由于可能重复 - 在这种情况下类型T不是接口