Maison > Article > développement back-end > Comment gérer les appels à distance et les appels de procédure à distance dans le développement C#
Comment gérer les appels à distance et les appels de procédure à distance dans le développement C# nécessite des exemples de code spécifiques
Introduction :
Avec le développement rapide du cloud computing et des systèmes distribués, les appels à distance et les appels de procédure à distance (RPC en abrégé) ) deviennent de plus en plus important dans le développement de logiciels. En tant que langage de programmation puissant, C# fournit également des outils et des frameworks puissants pour gérer les appels à distance et RPC. Cet article donnera quelques exemples de code pratiques sur la façon de gérer les appels à distance et RPC.
1. Le concept de base des appels à distance
Les appels à distance font référence aux appels mutuels entre deux ou plusieurs applications exécutées sur des ordinateurs différents. En C#, vous pouvez utiliser les appels à distance pour établir une communication entre des applications sur différents ordinateurs. C# fournit certaines classes et méthodes pour gérer les appels à distance, dont les plus couramment utilisées sont .Net Remoting et WCF (Windows Communication Foundation).
2. Utilisez .Net Remoting pour implémenter des appels à distance
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. Utilisez WCF pour implémenter des appels de procédure à distance
En plus d'utiliser .Net Remoting, nous pouvons également utiliser WCF pour implémenter des appels de procédure à distance.
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(); } } }
Conclusion :
Cet article présente quelques exemples de code pratiques sur la façon de gérer les appels à distance et les appels de procédure à distance dans le développement C#. Grâce à .Net Remoting et WCF, nous pouvons facilement réaliser une communication à distance entre les applications C#. J'espère que ces exemples pourront vous être utiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!