Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press
Buy directly from Paradoxal Press at $33.99 (Save 43%)
Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA
|
Listing 22-21 extracted from chapter
.NET Remoting
Listing 22-20< > Listing 22-22
This listing can be compiled with the command line: csc.exe /out:Client.exe /target:exe Example_22_21_to_rename_Client.cs /r:Interface.dll Errors: 0 Warnings: 0
Example_22_21_to_rename_Client.cs
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Activation;
using System.Collections;
using RemotingInterfaces;
namespace RemotingClient {
class CustomActivator {
private static bool bInit;
// Associating interfaces with services distants WKO.
private static IDictionary dicoTypes;
public static Object GetObject( Type type ) {
if ( !bInit )
InitdicoTypes();
WellKnownClientTypeEntry entry = (WellKnownClientTypeEntry)
dicoTypes[type];
return Activator.GetObject( entry.ObjectType, entry.ObjectUrl );
}
private static void InitdicoTypes() {
bInit = true;
dicoTypes = new Hashtable();
foreach ( WellKnownClientTypeEntry entry in
RemotingConfiguration.GetRegisteredWellKnownClientTypes() )
dicoTypes.Add( entry.ObjectType, entry );
}
}
class Program {
static void Main() {
RemotingConfiguration.Configure( "Client.config", false );
IAdder objA = (IAdder)CustomActivator.GetObject( typeof(IAdder) );
double dA = objA.Add( 3.0, 4.0 );
IMultiplier objM = (IMultiplier)
CustomActivator.GetObject( typeof( IMultiplier ) );
double dM = objM.Mult( 3.0, 4.0 );
// Factory design pattern for a Client Activated Object.
IFactory factory = (IFactory)
CustomActivator.GetObject( typeof( IFactory ) );
IDivider objD = factory.BuildNewDivider();
double dD = objD.Div( 3.0, 4.0 );
}
}
}
Copyright Patrick Smacchia 2006 2007
|