1

Funcパラメータを使用してWebメソッドを公開できるかどうか疑問に思います。

[WebMethod]
public List<Entity> ReadEntities(Func<Entity, bool> predicate)
{
    using (var entities = new GwEntities())
        return entities.Entities.Where(predicate).ToList();
}

Web参照を更新しようとすると、VisualStudioから次のような例外が発生しました。

System.Func [GwModel.Entity、SystemBoolean]にはパラメーターのないコンストラクターがないため、シリアル化できません。

回避策を教えてください!

4

3 に答える 3

4

このように独自のコードをシリアル化することはできません。シリアライザーはどこで開始し、どこで停止する必要がありますか?メソッドのコードと、メソッド内から呼び出されるすべてのアセンブリのみを転送する必要がありますか?オブジェクトへのLINQは同様のことを行います。を確認する必要があります。これらは、ネットワークを介してシリアル化できます。

于 2011-04-25T10:23:50.347 に答える
2

できません。funcパラメーターを呼び出し側のコードへの参照と考える場合、サーバーがそのコードをどのように認識できると思いますか?

于 2011-04-25T10:47:55.857 に答える
1

従来のasp.netWebサービスではクライアントコールバックを実装できない可能性があると思います。このためにWCFを選択できます。KickStart

于 2011-04-25T10:41:37.140 に答える