using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;
using System.Collections.Generic;
using System.Text;

namespace IpcGenerics
{
   class Program
   {
      static void Main(string[] args)
      {
         // inicjalizacja kanału
         IpcChannel ipc = new IpcChannel("Generics-Remoting");
         ChannelServices.RegisterChannel(ipc, false);
         RemotingConfiguration.RegisterWellKnownServiceType(
            typeof(SharedObjectImplementation<string>),
            "StringObject.rem",
            WellKnownObjectMode.SingleCall);

         RemotingConfiguration.RegisterWellKnownServiceType(
            typeof(SharedObjectImplementation<DateTime>),
            "DateObject.rem",
            WellKnownObjectMode.SingleCall);

         Console.WriteLine("Wiele obiektów zostało udostępnionych na kanale. Naciśnij [Enter], aby zakończyć.");
         Console.ReadLine();
      }
   }
}
