public static CreateWithContext ( Type type, System.ComponentModel.LicenseContext creationContext ) : object | ||
type | Type | |
creationContext | System.ComponentModel.LicenseContext | |
return | object |
// The CLR invokes this whenever a COM client invokes // IClassFactory::CreateInstance() or IClassFactory2::CreateInstanceLic() // on a managed managed that has a LicenseProvider custom attribute. // // If we are being entered because of a call to ICF::CreateInstance(), // fDesignTime will be "true". // // If we are being entered because of a call to ICF::CreateInstanceLic(), // fDesignTime will be "false" and bstrKey will point a non-null // license key. private static object AllocateAndValidateLicense(RuntimeTypeHandle rth, IntPtr bstrKey, int fDesignTime) { Type type = Type.GetTypeFromHandle(rth); CLRLicenseContext licensecontext = new CLRLicenseContext(fDesignTime != 0 ? LicenseUsageMode.Designtime : LicenseUsageMode.Runtime, type); if (fDesignTime == 0 && bstrKey != (IntPtr)0) { licensecontext.SetSavedLicenseKey(type, Marshal.PtrToStringBSTR(bstrKey)); } try { return(LicenseManager.CreateWithContext(type, licensecontext)); } catch (LicenseException lexp) { throw new COMException(lexp.Message, CLASS_E_NOTLICENSED); } }
private static object AllocateAndValidateLicense(RuntimeTypeHandle rth, IntPtr bstrKey, int fDesignTime) { object obj2; Type typeFromHandle = Type.GetTypeFromHandle(rth); CLRLicenseContext creationContext = new CLRLicenseContext((fDesignTime != 0) ? LicenseUsageMode.Designtime : LicenseUsageMode.Runtime, typeFromHandle); if ((fDesignTime == 0) && (bstrKey != IntPtr.Zero)) { creationContext.SetSavedLicenseKey(typeFromHandle, Marshal.PtrToStringBSTR(bstrKey)); } try { obj2 = LicenseManager.CreateWithContext(typeFromHandle, creationContext); } catch (LicenseException exception) { throw new COMException(exception.Message, -2147221230); } return(obj2); }
/// <summary>Creates an instance of the specified type, given a context in which you can use the licensed instance.</summary> /// <returns>An instance of the specified type.</returns> /// <param name="type">A <see cref="T:System.Type" /> that represents the type to create. </param> /// <param name="creationContext">A <see cref="T:System.ComponentModel.LicenseContext" /> that specifies when you can use the licensed instance. </param> public static object CreateWithContext(Type type, LicenseContext creationContext) { return(LicenseManager.CreateWithContext(type, creationContext, new object[0])); }