Sdílet prostřednictvím


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

  1. Použije LicenseProviderAttribute do třídy.

  2. Volání Validate nebo IsValid v konstruktoru.

  3. 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();
    }    
}

Viz také

Referenční dokumentace

LicenseProviderAttribute

LicenseProvider

Další zdroje

Tvorba komponent