using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Microsoft.Win32;
namespace Sheng.Winform.Controls
{
class SEControlLicenseProvider : LicenseProvider
{
///
/// 0:未验证
/// 1:验证失败
/// 2:验证通过
///
//private static ushort _isValid = 0;
public bool IsValid
{
get
{
//TODO:SEControlLicenseProvider
return true;
// using (RegistryKey registryKey =
// Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Sheng.SIMBE\SEControl"))
// {
// object license = registryKey.GetValue("License");
// if (license == null)
// {
// _isValid = 1;
// }
// else
// {
// if (license.ToString() == "sheng")
// _isValid = 2;
// else
// _isValid = 1;
// }
// }
//return _isValid == 2 ? true : false;
}
}
///
/// 获取组件的实例或类型的许可证(如果已给定上下文并确定拒绝许可证是否引发异常)。
///
///
///
///
///
///
public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions)
{
if (context.UsageMode == LicenseUsageMode.Runtime)
{
return new SEControlLicense(type);
}
else if (context.UsageMode == LicenseUsageMode.Designtime)
{
// 限制编辑模式下的许可证(所谓的开发许可证),在这里添加相应的逻辑
if (!IsValid)
throw new LicenseException(type);
else
return new SEControlLicense(type);
}
return (null);
}
}
}