C# 给程序添加许可
实现许可提供程序:
using System;
using System.ComponentModel;
using System.IO;
public class MyLicenseProvider : LicenseProvider
{
public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions)
{
if (context.UsageMode == LicenseUsageMode.Designtime)
{
return new MyLicense(this, "OK");
}
else
{
string licenseFile = AppDomain.CurrentDomain.BaseDirectory + "test.lic";
if (File.Exists(licenseFile))
{
return new MyLicense(this, "OK");
}
else
{
throw new LicenseException(type);
}
}
}
}
using System.ComponentModel;
using System.IO;
public class MyLicenseProvider : LicenseProvider
{
public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions)
{
if (context.UsageMode == LicenseUsageMode.Designtime)
{
return new MyLicense(this, "OK");
}
else
{
string licenseFile = AppDomain.CurrentDomain.BaseDirectory + "test.lic";
if (File.Exists(licenseFile))
{
return new MyLicense(this, "OK");
}
else
{
throw new LicenseException(type);
}
}
}
}
许可证:
using System.ComponentModel;
public class MyLicense : License
{
private MyLicenseProvider licenseProvider;
private string licenseKey;
public MyLicense(MyLicenseProvider licenseProvider, string licenseKey)
{
this.licenseProvider = licenseProvider;
this.licenseKey = licenseKey;
}
public override string LicenseKey
{
get
{
return licenseKey;
}
}
public override void Dispose()
{
this.licenseProvider = null;
this.licenseKey = null;
}
}
public class MyLicense : License
{
private MyLicenseProvider licenseProvider;
private string licenseKey;
public MyLicense(MyLicenseProvider licenseProvider, string licenseKey)
{
this.licenseProvider = licenseProvider;
this.licenseKey = licenseKey;
}
public override string LicenseKey
{
get
{
return licenseKey;
}
}
public override void Dispose()
{
this.licenseProvider = null;
this.licenseKey = null;
}
}
给组件添加许可:
using System;
using System.ComponentModel;
[LicenseProvider(typeof(MyLicenseProvider))]
public static class Business1
{
static Business1()
{
LicenseManager.Validate(typeof(Business1), null);
}
public static string TestString = "test ok";
}
using System.ComponentModel;
[LicenseProvider(typeof(MyLicenseProvider))]
public static class Business1
{
static Business1()
{
LicenseManager.Validate(typeof(Business1), null);
}
public static string TestString = "test ok";
}