在Asp.Net WebApi中序列化动态类型

时间:2017-07-19 10:51:56

标签: c# asp.net-mvc asp.net-web-api

我有一个WebApi,其方法可以创建动态类型,如下所示:

[HttpGet]
public object Foo()
{
AssemblyName asmName = new AssemblyName(string.Format("{0}_{1}", "tmpAsm", Guid.NewGuid().ToString("N")));
AssemblyBuilder asmBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = asmBuilder.DefineDynamicModule("core");
TypeBuilder typeBuilder = GetTempModule().DefineType("MyDynamicClass", TypeAttributes.Public);
Type proxy = typeBuilder.CreateType();

return Activator.CreateInstance(proxy); 
}

似乎内置的序列化程序无法序列化此类,实际上我收到以下错误:

  

键入' MyDynamicClass'与数据合同名称   ' MyDynamicClass://schemas.datacontract.org/2004/07/'   不是预期的。如果是的话,请考虑使用DataContractResolver   使用DataContractSerializer或添加静态未知的任何类型   已知类型的列表 - 例如,通过使用KnownTypeAttribute   属性或将它们添加到传递给的已知类型列表中   串行器。

我还尝试使用Serializable属性标记动态类,但仍无效。 有什么建议吗?

0 个答案:

没有答案