#C# 開発でリモート呼び出しとリモート プロシージャ コールを処理する方法には、特定のコード サンプルが必要です
はじめに:
クラウド コンピューティングと分散システムの急速な発展に伴い、 , ソフトウェア開発において、リモート コールとリモート プロシージャ コール (略して RPC) の重要性がますます高まっています。強力なプログラミング言語である C# は、リモート呼び出しと RPC を処理するための強力なツールとフレームワークも提供します。この記事では、リモート呼び出しと RPC を処理する方法に関する実践的なコード例をいくつか紹介します。
1. リモート呼び出しの基本概念
リモート呼び出しとは、異なるコンピューター上で実行されている 2 つ以上のアプリケーション間の相互呼び出しを指します。 C# では、リモート呼び出しを使用して、異なるコンピューター上のアプリケーション間の通信を実現できます。 C# には、リモート呼び出しを処理するためのいくつかのクラスとメソッドが用意されており、最もよく使用されるのは .Net Remoting と WCF (Windows Communication Foundation) です。
2. .Net Remoting を使用してリモート呼び出しを実装する
using System; namespace RemoteCallExample { public interface IRemoteService { string SayHello(string name); } }
using System; namespace RemoteCallExample { public class RemoteService : MarshalByRefObject, IRemoteService { public string SayHello(string name) { return $"Hello, {name}!"; } } }
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(); } } }
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 を使用してリモート プロシージャ コールを実装することもできます。
using System.ServiceModel; namespace RemoteCallExample { [ServiceContract] public interface IRemoteService { [OperationContract] string SayHello(string name); } }
namespace RemoteCallExample { public class RemoteService : IRemoteService { public string SayHello(string name) { return $"Hello, {name}!"; } } }
<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>
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 サイトの他の関連記事を参照してください。