public void TestFixtureSetUp() { var seed = (int)DateTime.Now.Ticks; _random = new Random(seed); var endPoint = new Mock <IRemotingEndPoint>(); _endPoint = endPoint.Object; var channel = new Mock <IEndPointChannel>(); _channel = channel.Object; _proxyCreator = new RemotingProxyCreator(); _servantCreator = new ServantCreator(); channel.Setup( x => x.CallRemoteMethod(It.IsAny <ulong>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MemoryStream>())) .Returns((ulong objectId, string interfaceName, string methodName, Stream arguments) => { if (objectId != _servant.ObjectId) { throw new NoSuchServantException(objectId); } BinaryReader reader = arguments != null ? new BinaryReader(arguments) : null; var ret = new MemoryStream(); var writer = new BinaryWriter(ret); _servant.Invoke(methodName, reader, writer); ret.Position = 0; return(ret); }); }
/// <summary> /// Initializes this object. /// </summary> /// <remarks> /// Creating a new instance of this type means loading a new dynamic assembly into the /// <see cref="AppDomain.CurrentDomain" />. THIS ASSEMBLY CANNOT BE UNLOADED UNLESS THE APPDOMAIN IS. /// Do not create new instances of this type if you can easily re-use an existing instance or /// you will consume more and more memory. /// </remarks> /// <param name="customTypeResolver">Type resolver that should be used instead of <see cref="TypeResolver" /></param> public CodeGenerator(ITypeResolver customTypeResolver = null) { var assemblyName = new AssemblyName("SharpRemote.GeneratedCode"); var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave); var moduleName = assemblyName.Name + ".dll"; var module = assembly.DefineDynamicModule(moduleName); var serializer = new BinarySerializer(module, customTypeResolver); _proxyCreator = new RemotingProxyCreator(module, serializer); _servantCreator = new ServantCreator(module, serializer); }
public void SetUp() { var assemblyName = new AssemblyName("SharpRemote.GeneratedCode.Servants"); _assembly = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave); _moduleName = assemblyName.Name + ".dll"; ModuleBuilder module = _assembly.DefineDynamicModule(_moduleName); var seed = (int)(DateTime.Now.Ticks % Int32.MaxValue); Console.WriteLine("Seed: {0}", seed); _random = new Random(seed); _endPoint = new Mock <IRemotingEndPoint>(); _channel = new Mock <IEndPointChannel>(); _creator = new ServantCreator(module); _serializer = _creator.BinarySerializer; }
/// <summary> /// Initializes this object. /// </summary> /// <remarks> /// Creating a new instance of this type means loading a new dynamic assembly into the /// <see cref="AppDomain.CurrentDomain" />. THIS ASSEMBLY CANNOT BE UNLOADED UNLESS THE APPDOMAIN IS. /// Do not create new instances of this type if you can easily re-use an existing instance or /// you will consume more and more memory. /// </remarks> /// <param name="customTypeResolver">Type resolver that should be used instead of <see cref="TypeResolver" /></param> public CodeGenerator(ITypeResolver customTypeResolver = null) { var assemblyName = new AssemblyName("SharpRemote.GeneratedCode"); #if DOTNETCORE var access = AssemblyBuilderAccess.Run; #else var access = AssemblyBuilderAccess.RunAndSave; #endif var assembly = AssemblyBuilder.DefineDynamicAssembly(assemblyName, access); var moduleName = assemblyName.Name + ".dll"; var module = assembly.DefineDynamicModule(moduleName); var serializer = new BinarySerializer(module, customTypeResolver); _proxyCreator = new RemotingProxyCreator(module, serializer); _servantCreator = new ServantCreator(module, serializer); }
/// <summary> /// /// </summary> /// <param name="binarySerializer"></param> public CodeGenerator(BinarySerializer binarySerializer) { _proxyCreator = new RemotingProxyCreator(binarySerializer.Module, binarySerializer); _servantCreator = new ServantCreator(binarySerializer.Module, binarySerializer); }