Postupy: Licencování komponent a ovládacích prvků
Nabízí model správy licencí, která je stejná pro všechny komponenty a ovládací prvky, včetně model Windows Forms a server ovládá a je plně kompatibilní s licencí pro ovládací prvky Microsoft ActiveX ®.
S licencí, jako autor komponenta nebo ovládací prvek můžete chránit duševní vlastnictví ověřením, že vývojář je oprávněn použít komponentu nebo ovládací prvek.Toto ověření je důležitá v době návrhu, kdy vývojář zahrnuje komponentu nebo ovládací prvek do aplikace, než v době spuštění.Vývojář používá legálně licencovaný komponenta nebo ovládací prvek v době návrhu, získá pro vývojáře aplikací runtime licence, která lze volně distribuovat vývojáře.
Máte mnoho úrovní podpory model správy licencí s licencí.Model logiku ověřování odděluje od komponenta nebo ovládací prvek.Poskytovatel licence uděluje licence a provede ověření.Zprostředkovatel je třída, která pochází z LicenseProvider.Kroky, které musí mít povolení správy licencí jsou jednoduché.
Při použití výchozí provádění LicenseProvider podle LicFileLicenseProvider, licenční soubor je formátován následujícím způsobem:
Název souboru musí být plně kvalifikovaný název včetně oboru názvů třídy s příponou názvu souboru.LIC.Příklad:
Namespace1.Class1.LIC
Obsah souboru licence by měly obsahovat následující textový řetězec:
"myClassName je licencovaná součástí."
myClassNameje plně kvalifikovaný název třídy.Příklad:
"Namespace1.Class1 je licencovaná komponenty."
Následující příklady kódu zobrazit ovládací prvek model Windows Forms a řízení serveru, které implementují jednoduchý případ licencí.
Povolení správy licencí pro komponentu nebo ovládací prvek
Použije LicenseProviderAttribute do třídy.
Volání Dispose na licence udělené v finalizačních metod třídy nebo se nazývá finalizačních metod.
Následující příklady kódu pomocí třídy zprostředkovatele vestavěné licenční LicFileLicenseProvider, která umožňuje používat textové soubory s licencí a napodobuje chování licencí COM (ActiveX).Složitější licencování scénářů, například volání webové služby XML omezit počet instancí komponenty, vyžadují různé druhy poskytovatelů licencí.
Příklad
Imports System
Imports System.ComponentModel
Imports System.Windows.Forms
' Adds the LicenseProviderAttribute to the control.
<LicenseProvider(GetType(LicFileLicenseProvider))> _
Public Class MyControl
Inherits Control
' Creates a new, null license.
Private license As License = Nothing
Public Sub New()
' Adds Validate to the control's constructor.
license = LicenseManager.Validate(GetType(MyControl), Me)
' Insert code to perform other instance creation tasks here.
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If (license IsNot Nothing) Then
license.Dispose()
license = Nothing
End If
End If
End Sub
End Class
using System;
using System.ComponentModel;
using System.Windows.Forms;
// Adds the LicenseProviderAttribute to the control.
[LicenseProvider(typeof(LicFileLicenseProvider))]
public class MyControl : Control
{
// Creates a new, null license.
private License license = null;
public MyControl ()
{
// Adds Validate to the control's constructor.
license = LicenseManager.Validate(typeof(MyControl), this);
// Insert code to perform other instance creation tasks here.
}
protected override void Dispose(bool disposing)
{
if(disposing)
{
if (license != null)
{
license.Dispose();
license = null;
}
}
}
}
// Adds the LicenseProviderAttribute to the control.
[LicenseProvider(LicFileLicenseProvider::typeid)]
public ref class MyControl: public Control
{
// Creates a new, null license.
private:
License^ license;
public:
MyControl()
{
// Adds Validate to the control's constructor.
license = LicenseManager::Validate( MyControl::typeid, this );
// Insert code to perform other instance creation tasks here.
}
public:
~MyControl()
{
if ( license != nullptr )
{
delete license;
license = nullptr;
}
}
};
Imports System
Imports System.ComponentModel
Imports System.Web.UI
' Adds the LicenseProviderAttribute to the control.
<LicenseProvider(GetType(LicFileLicenseProvider))> Public Class MyControl
Inherits Control
' Creates a new, null license.
Private license As License
Public Sub New()
' Adds Validate to the control's constructor.
license = LicenseManager.Validate(GetType(MyControl), Me)
' Insert code to perform other instance creation tasks here.
End Sub
Public Overrides Sub Dispose()
If (license IsNot Nothing) Then
license.Dispose()
license = Nothing
End If
MyBase.Dispose()
End Sub
End Class
using System;
using System.ComponentModel;
using System.Web.UI;
// Adds the LicenseProviderAttribute to the control.
public class MyServerControl : Control
{
// Creates a new, null license.
private License license = null;
public MyServerControl()
{
// Adds Validate to the control's constructor.
license = LicenseManager.Validate(typeof(MyServerControl), this);
// Insert code to perform other instance creation tasks here.
}
public override void Dispose()
{
if (license != null)
{
license.Dispose();
license = null;
}
base.Dispose();
}
}