public CCorRuntimeHost(System.Deployment.Application.NativeMethods.IClrRuntimeInfo RuntimeInfo)
            {
                StringBuilder buffer   = new StringBuilder(260);
                int           capacity = buffer.Capacity;

                RuntimeInfo.GetVersionString(buffer, ref capacity);
                this.ClrRuntimeInfoVersion = buffer.ToString();
                Logger.AddMethodCall("CCorRuntimeHost.ctor called with IClrRuntimeInfo version " + this.ClrRuntimeInfoVersion, DateTime.Now);
                this.RuntimeHostInstance = (System.Deployment.Application.NativeMethods.ICorRuntimeHost)RuntimeInfo.GetInterface(System.Deployment.Application.NativeMethods._corRuntimeHostClsIdGuid, System.Deployment.Application.NativeMethods._corRuntimeHostInterfaceIdGuid);
            }
 public void Dispose()
 {
     this.fDelegatesBound   = false;
     this.InvokeMemberFnPtr = null;
     if (IntPtr.Zero != this.DomainTypePtr)
     {
         Marshal.Release(this.DomainTypePtr);
         this.DomainTypePtr = IntPtr.Zero;
     }
     this.GetTypeFnPtr = null;
     if (IntPtr.Zero != this.DomainObjectPtr)
     {
         Marshal.Release(this.DomainObjectPtr);
         this.DomainObjectPtr = IntPtr.Zero;
     }
     this.CurrentDomainFnPtr = null;
     if (IntPtr.Zero != this.RuntimeHostPtr)
     {
         Marshal.Release(this.RuntimeHostPtr);
         this.RuntimeHostPtr = IntPtr.Zero;
     }
     this.RuntimeHostInstance = null;
 }