private static AssemblyBuilderAccess ToAssemblyBuilderAccess( MethodInvokerEmitterMode mode )
 {
     switch ( mode )
     {
         case MethodInvokerEmitterMode.Saveable:
         {
             return AssemblyBuilderAccess.RunAndSave;
         }
         case MethodInvokerEmitterMode.Collectable:
         {
             return AssemblyBuilderAccess.RunAndCollect;
         }
         default:
         {
             return AssemblyBuilderAccess.RunAndCollect;
         }
     }
 }
示例#2
0
 public DefaultMethodInvokerProvider( MethodInvokerEmitterMode mode )
 {
     this._invokerEmitter = new MethodInvokerEmitter( mode );
 }
 public MethodInvokerEmitter( MethodInvokerEmitterMode mode )
 {
     int sequence = Interlocked.Increment( ref _sequence );
     string name = "MsgPack.Rpc.MethodInvokers." + sequence;
     this._targetAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly( new AssemblyName( name ), ToAssemblyBuilderAccess( mode ) );
     this._targetModule = this._targetAssembly.DefineDynamicModule( name + ".dll" );
 }