C#: как реализовать простой лицензионный ключ / вызов checklicence()
Есть ли способ вызвать метод CheckLicence() автоматически в каждом методе статического класса?
У меня есть несколько статических классов с сотнями методов.
Таким образом, глобальная проверка лицензии была бы более удобной, чем вызов метода CheckLicence() в каждом методе класса.
Объяснение примера:
LicenceKey устанавливается приложением при запуске.
Так что лицензия в порядке на всю жизнь.
Я хочу избавиться от вызова CheckLicence() в AddMethod().
Фон:
У меня есть большая библиотека инструментов, которая используется в нескольких проектах. Библиотека развернута в моих проектах (веб-сайты, настольные приложения). Я хочу иметь базовую защиту, чтобы DLL не могла напрямую использоваться клиентами в их собственных внутренних проектах.
Что я уже пробовал:
public static class LicensedClass
{
public static string licenceKey = "";
public static bool IsLicensed
{
get { return (licenceKey == "ABC123"); }
}
public static void CheckLicence()
{
if (!IsLicensed)
throw new System.ArgumentException("Wrong licence key.", licenceKey);
}
public static double AddMethod(double number1, double number2)
{
CheckLicence();
return number1 + number2;
}
}
BillWoodruff
"Есть ли способ вызвать метод CheckLicence() автоматически в каждом методе статического класса?" Если вы сделаете это, у вас будет очень медленное приложение. Зачем вам вообще проверять наличие лицензии при каждом вызове метода?.. это безумие.
Sni.DelWoods
Вы абсолютно правы. Я добавил причину к своему вопросу, так что, возможно, есть лучшее решение этой проблемы.