Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#序列化表达式_C#_.net_Database_Linq_Serialization - Fatal编程技术网

C#序列化表达式

C#序列化表达式,c#,.net,database,linq,serialization,C#,.net,Database,Linq,Serialization,我想序列化表达式。(创建IQuery客户端->将其发送到服务器->执行->将结果返回到客户端) 但老实说,表达式是不可序列化的。对于gnupacket Serialize.Linq(),我仍然有一个问题。将引发以下异常: 转换类型时出错:Der Typ'Prog.DB.Query`1[[Prog.Database.User, 程序数据库,版本=1.0.0.0,区域性=中性, PublicKeyToken=null]'mit dem Datenvertragsnamen “ArrayOfUser:

我想序列化表达式。(创建IQuery客户端->将其发送到服务器->执行->将结果返回到客户端)

但老实说,表达式是不可序列化的。对于gnupacket Serialize.Linq(),我仍然有一个问题。将引发以下异常:

转换类型时出错:Der Typ'Prog.DB.Query`1[[Prog.Database.User, 程序数据库,版本=1.0.0.0,区域性=中性, PublicKeyToken=null]'mit dem Datenvertragsnamen “ArrayOfUser:” 我是尼赫特·埃尔瓦特。韦文登·希格夫。einen数据解析程序, 如果您想了解更多关于上市公司的统计信息 类型hinzu,beispielsweise mithilfe des knowntypeattributes 如果你是一个年轻人,那你就去吧 DataContractSerializerübergebenWird

我添加了所有已知的类型

JsonSerializer js=new-JsonSerializer();
js.AddKnownTypes(Assembly.GetAssembly(typeof(Prog.Database.User)).GetTypes().Where(t=>!ignoreList.Contains(t)).ToList()

添加
js.AddKnownType(typeof(List))引发另一个异常

转换类型时出错:Der Typ “System.Collections.Generic.List`1[LISA.Database.User]”kann der Liste 这是一个典型的例子 “LISA.Database.User[]”mit demselben Datenvertragsnamen “schemas.datacontract.org/2004/07/LISA.Database:ArrayOfUser” 沃汉登是一位作家。这是最常见的类型 沃汉登·辛德,z。B.列出并测试[],können nicht beide als 这是一个很好的例子。弗根·西耶格夫。努尔·伊恩·迪泽 这是一个很好的例子


数据库是可序列化的(序列化模式:单向),并且还设置了[DataMember]+[DataContract]属性。没有表达式的序列化(只有数据库对象)可以很好地工作。

为什么要提供这么宽的接口?您可以使用表达式树执行.NET允许您执行的任何安全操作-您确定要允许客户端将
格式c:
发送到服务器吗?创建自己的表达式树并不是那么难,因为Linq使用起来非常方便,我不想编写纯SQL或为每个可能的选择创建命令。@ThomasChristof当然!你能把你服务器的详细资料发给我吗?我可以在你的服务器上运行几乎所有的代码,如果你打开你的服务器来使用表达式的话。你知道,你可以使用LINQ而不用.NET的表达式树。这并没有什么神奇之处——只是函数获取参数并返回一个值。这甚至不是特别难-我已经在.NET的表达式和其他方面创建了一些提供者-所有这些都是很好的强类型和所有内容。是的,但我也不能序列化它们。也许一些推荐人可以帮我。你能给我提供关于你的实现的更多信息吗?