我尝试在C#中使用XmlSerializer
来通过将调用重定向到执行序列化的透明代理来序列化方法调用。我已经将所有类型的方法参数作为extraTypes添加到序列化程序中。除了特定情况外,一切都有效。
我们在方法参数中有List<TypeA>
和TypeA[]
,因此它们应该被添加到序列化程序中。如果我不手动XmlInclude List<TypeA>
,则会抛出此异常:
System.InvalidOperationException: The type System.Collections.Generic.List`1[[TypeA, , Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]] may not be used in this context.
然后我添加XmlInclude(typeof(List<TypeA>))
并认为它可以解决问题。但是,发生了一件奇怪的事情。它抛出
System.InvalidOperationException: The type TypeA[] may not be used in this context
我编写了测试用例,如果我不添加TypeA[]
,我确信List<TypeA>
有效。
有谁知道导致此问题的原因?谢谢!