ホームページ > バックエンド開発 > C#.Net チュートリアル > C# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法

C# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法

王林
リリース: 2023-10-09 09:37:02
オリジナル
1592 人が閲覧しました

C# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法

#C# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法には、特定のコード サンプルが必要です

はじめに:
クラウド コンピューティングと分散システムの急速な発展に伴い、 , ソフトウェア開発において、リモート コールとリモート プロシージャ コール (略して RPC) の重要性がますます高まっています。強力なプログラミング言語である C# は、リモート呼び出しと RPC を処理するための強力なツールとフレームワークも提供します。この記事では、リモート呼び出しと RPC を処理する方法に関する実践的なコード例をいくつか紹介します。

1. リモート呼び出しの基本概念
リモート呼び出しとは、異なるコンピューター上で実行されている 2 つ以上のアプリケーション間の相互呼び出しを指します。 C# では、リモート呼び出しを使用して、異なるコンピューター上のアプリケーション間の通信を実現できます。 C# には、リモート呼び出しを処理するためのいくつかのクラスとメソッドが用意されており、最もよく使用されるのは .Net Remoting と WCF (Windows Communication Foundation) です。

2. .Net Remoting を使用してリモート呼び出しを実装する

  1. リモート サービス インターフェイスを作成する
    最初に、リモート サービス インターフェイスを定義する必要があります。 C# では、インターフェイスを使用してリモート サービスのメソッドを定義します。
using System;

namespace RemoteCallExample
{
    public interface IRemoteService
    {
        string SayHello(string name);
    }
}
ログイン後にコピー
  1. リモート サービス実装の作成
    次に、リモート サービス インターフェイスを実装するクラスを作成する必要があります。
using System;

namespace RemoteCallExample
{
    public class RemoteService : MarshalByRefObject, IRemoteService
    {
        public string SayHello(string name)
        {
            return $"Hello, {name}!";
        }
    }
}
ログイン後にコピー
  1. リモート呼び出しを有効にする
    次に、サーバー側でリモート呼び出しを有効にする必要があります。 C# では、RemotingConfiguration クラスを使用してリモート オブジェクトを登録し、有効にすることができます。
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespace RemoteCallExample
{
    class Program
    {
        static void Main(string[] args)
        {
            TcpChannel channel = new TcpChannel(8080);
            ChannelServices.RegisterChannel(channel, false);

            RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteService), "RemoteService", WellKnownObjectMode.Singleton);

            Console.WriteLine("Remote service is running.");
            Console.ReadKey();
        }
    }
}
ログイン後にコピー
  1. リモート呼び出しクライアント
    最後に、リモート サービスを呼び出すクライアントを作成する必要があります。
using System;

namespace RemoteCallExample
{
    class Program
    {
        static void Main(string[] args)
        {
            IRemoteService remoteService = (IRemoteService)Activator.GetObject(typeof(IRemoteService), "tcp://localhost:8080/RemoteService");

            string result = remoteService.SayHello("John");
            Console.WriteLine(result);

            Console.ReadKey();
        }
    }
}
ログイン後にコピー

3. WCF を使用してリモート プロシージャ コールを実装する
.Net Remoting の使用に加えて、WCF を使用してリモート プロシージャ コールを実装することもできます。

  1. WCF サービス インターフェイスの作成
    .Net Remoting を使用するのと同じように、最初に WCF サービス インターフェイスを定義する必要があります。
using System.ServiceModel;

namespace RemoteCallExample
{
    [ServiceContract]
    public interface IRemoteService
    {
        [OperationContract]
        string SayHello(string name);
    }
}
ログイン後にコピー
  1. WCF サービス実装の作成
    次に、WCF サービス インターフェイスを実装するクラスを作成する必要があります。
namespace RemoteCallExample
{
    public class RemoteService : IRemoteService
    {
        public string SayHello(string name)
        {
            return $"Hello, {name}!";
        }
    }
}
ログイン後にコピー
  1. WCF サービスの構成
    次に、構成ファイルで WCF サービスを構成する必要があります。
<system.serviceModel>
  <services>
    <service name="RemoteCallExample.RemoteService">
      <endpoint address="" binding="basicHttpBinding" contract="RemoteCallExample.IRemoteService" />
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:8080/RemoteService" />
        </baseAddresses>
      </host>
    </service>
  </services>
</system.serviceModel>
ログイン後にコピー
  1. リモート呼び出しクライアント
    最後に、WCF クライアントを使用してリモート サービスを呼び出すことができます。
using System;
using System.ServiceModel;

namespace RemoteCallExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ChannelFactory<IRemoteService> channelFactory = new ChannelFactory<IRemoteService>(new BasicHttpBinding(), new EndpointAddress("http://localhost:8080/RemoteService"));
            IRemoteService remoteService = channelFactory.CreateChannel();

            string result = remoteService.SayHello("John");
            Console.WriteLine(result);

            Console.ReadKey();
        }
    }
}
ログイン後にコピー

結論:
この記事では、C# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法に関する実践的なコード例をいくつか紹介します。 .Net Remoting と WCF を介して、C# アプリケーション間のリモート通信を簡単に実現できます。これらの例があなたのお役に立てば幸いです。

以上がC# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート