Web Service 中委托无法序列化的问题

ridge.chang 2010-12-04 10:42:30
public delegate double FunDelegate(double param);

[Serializable]
class IntergralOperation
{
private FunDelegate fun = null;//被积函数

private double lowerLimit;//积分下限
private double upperLimit;//积分上限
static public double Result;//返回结果

public IntergralOperation(FunDelegate f, double lL, double uL)
{
this.fun = f;
this.lowerLimit = lL;
this.upperLimit = uL;
}//构造函数
public override void Operation()
{
//积分运算
}
}

public class Service : System.Web.Services.WebService
{
[WebMethod(Description = "求定积分")]
public double Intergral(FunDelegate f, double lL, double uL)
{
MathOperation mo = MathOperationFactory.IntergralOperationInstance(f, 0, 1);
mo.Operation();
return IntergralOperation.Result;
}
}

为什么会提示“FunDelegate 无法序列化,因为它没有无参数的构造函数”?应该如何解决?
...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ridge.chang 2010-12-18
  • 打赏
  • 举报
回复
谢谢各位了
jeven_xiao 2010-12-10
  • 打赏
  • 举报
回复
委託的方法呢
tbc168 2010-12-09
  • 打赏
  • 举报
回复
在<<WCF服务编程>>建议不要将委托放入数据成员,因为里面的委托列表类型是不可预知的,

可以用个[field:DataMember()]来解决吧,忘记了
机器人 2010-12-07
  • 打赏
  • 举报
回复
不支持delegate作为参数。

另外这个ms是没有意义的设计,
WebService就是提供方法让客户端调用,客户端不需要知道服务端的实现,
现在还要让客户端提供实现,似乎不合理啊。

btw:假设支持的话,那我这么写: FunDelegate func = p => File.Delete(...);
那服务端岂不是惨了。。。
MarcuseXiao 2010-12-06
  • 打赏
  • 举报
回复
我没有看明白你的delegate是哪个方法?你委托应该是委托一个方法。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧