Benutzer:MovGP0/NET/Remoting
Zur Navigation springen
Zur Suche springen
MovGP0 | Über mich | Hilfen | Artikel | Weblinks | Literatur | Zitate | Notizen | Programmierung | MSCert | Physik |
.NET Remoting[Bearbeiten | Quelltext bearbeiten]
namespace DotNetRemoting.Contract
{
public interface ICustomerManager
{
Customer GetCustomer(int id);
}
}
using System;
namespace DotNetRemoting.Contract
{
[Serializable]
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public int Age
{
get
{
var timespan = DateTime.Today.Subtract(DateOfBirth);
return timespan.Days / 356;
}
}
}
}
using System;
using DotNetRemoting.Contract;
namespace DotNetRemoting.Server
{
public class CustomerManager : MarshalByRefObject, ICustomerManager
{
public Customer GetCustomer(int id)
{
return new Customer
{
FirstName = "John",
LastName = "Doe",
DateOfBirth = new DateTime(1980, 7, 4)
};
}
}
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
namespace DotNetRemoting.Server
{
class Program
{
static void Main()
{
var channel = new HttpChannel(1234);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(CustomerManager), "CustomerManager.soap", WellKnownObjectMode.Singleton);
Console.Write("Service has started. Press enter to cancel.");
Console.ReadLine();
}
}
}
using System;
using System.Globalization;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using DotNetRemoting.Contract;
namespace DotNetRemoting.Client
{
class Program
{
static void Main()
{
var channel = new HttpChannel();
ChannelServices.RegisterChannel(channel, false);
var manger = (ICustomerManager)Activator.GetObject(typeof (ICustomerManager),"http://localhost:1234/CustomerManager.soap");
var customer = manger.GetCustomer(4711);
var age = customer.Age;
Console.WriteLine("The age of the customer is {0} years.", age.ToString(CultureInfo.InvariantCulture));
}
}
}
|