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
Вы абсолютно правы. Я добавил причину к своему вопросу, так что, возможно, есть лучшее решение этой проблемы.