有没有办法从WCF方法返回DynamicClass
类型的对象数组?
我在我的WCF服务中使用Dynamic Linq Library,以便根据客户端的请求,在数据库表的select
列中使用{{3}}。客户端代码应如下所示:
//client side code
string whereClause = "FeatureId >= 6 and FeatureId <= 180";
string selectClause = "New(FeatureName as Name, FeatureId as Id)";
client.RequestAsync("Feature", "FeatureDB", whereClause, selectClause);
功能是表格的名称,我想从select
只有两列,即。 FeatureName 和 FeatureId ,满足where
子句中的条件。
这里的问题是查询在服务器上运行正常,但WCF无法将其发送回客户端。我的猜测是,动态创建的只定义所选列的类未声明DataContract
,因此WCF无法使用它。
那么解决这个问题的方法呢?
还是其他选择?目标是,我不想返回数据库表的所有列,因为我不需要在客户端的所有列。所以我没有看到将所有列发送回客户端的任何意义,客户端无论如何都会丢弃它。
答案 0 :(得分:0)
您可以通过使用Reflection来使用适当的属性来装饰字段来解决此问题,但是这可能仍会对使用WCF服务的任何客户端进程造成问题,因为生成的服务合同部分将是非确定性的,即模式中的xs:any。
最好尽可能尝试强力键入您的WCF合同。
答案 1 :(得分:0)
您是否考虑过实施WCF Data Service?