3

SL ビジネス アプリケーション テンプレートを使用し、ソリューションの .Web 部分の [サービス] フォルダーに新しい空のドメイン サービスを追加しました。クラスは DomainService1 で、DomainService を継承しています。1 つのメソッドが含まれています。

public class DomainService1 : DomainService
{
    public string Hello()
    {
        return "Hello World";
    }
}

クライアントからこのサービス メソッドにアクセスするにはどうすればよいですか? クライアント側でドメインサービスのインスタンスを作成できないようです.....

4

2 に答える 2

4

クライアント側のコードは、RIA サービスによって生成されます。

DomainService を継承するサービスにアクセスするには、クライアント側で新しいコンテキストを作成します。

名前の「Service」の部分を「Context」に置き換えます。

UserService = UserContext、ArticleService = ArticleContext など。

クライアントコード

var testContext = new TestContext();
            testContext.Hello();

サービスコード

[EnableClientAccess]
    public class TestService : DomainService
    {
        public string Hello()
        {
            return "Hello world!";
        }
    }
于 2010-07-07T11:52:32.410 に答える
0

プロジェクトで RIA サービスが有効になっていることを確認してください。

サービス名がタグで終わる場合、サービス名serviceのようなコンテキストに変換できDomainService1、クライアント側でDomainContext1. サーバー側で Domainservice 名が のABC場合、名前で直接アクセスできます。コンテキストは必要ありません。

サービスコード:

[EnableClientAccess]
public class TestService : DomainService
{
    public string Hello()
    {
        return "Hello world!";
    }
}

クライアント コード: クライアント側では、次のような名前空間を宣言する必要があります。system.your web project.web.servicesmodel.client

今、

TestContext test=new TestContext(); 
test.Hello(getData,null,false);`

// 最初のパラメータはコールバック メソッドです。2 番目のパラメータは重要ではありません。3 番目のパラメータは例外が発生した場合、

public void getData(InvokeOpration<string> value)
  {
    MessageBox.Show(""+value.Value);

    }

これで、Hello World をMessageBox.

于 2012-05-14T16:47:07.417 に答える