Это может быть Daft вопрос, как я могу видеть причину безопасности, чтобы это произошло так, как это делает ...доступа частный метод в различной комплектации с #
У меня есть лицензирование C# проекта, это имеет класс который имеет метод, который генерирует мои лицензионные ключи. Я сделал этот метод приватным, так как я не хочу, чтобы кто-либо еще мог вызвать мой метод по очевидным причинам.
Следующее, что я хочу сделать, - это иметь мой пользовательский интерфейс, который находится в другом проекте C#, который ссылается лицензирующая dll будет единственной другой «вещью», которая может получить доступ к этому методу вне себя, это возможно или мне нужно переместить его в один и тот же проект, чтобы он все скомпилировался в одну и ту же DLL, и я могу получить доступ к ее членам?
LicensingProject
-LicensingClass
--private MethodX (GeneratesLicenseKeys)LicensingProject.UI
-LicensingUiClass
--Я хочу, чтобы иметь возможность быть единственным классом, чтобы иметь возможность доступ MethodX
Существует причина, по которой лицензионный ключ-генератор не только в пользовательском интерфейсе, лицензирование работает, генерируя хеш сам по себе и сравнивает его с тем, который генерируется Генератором лицензий.
Я бы предпочел, чтобы все не компилировались в dll, так как моим конечным пользователям не нужен код пользовательского интерфейса.
Я знаю, что здравым смыслом используется частный метод. Я в тупике.
Я не думаю, что CLR перестанет называть частные методы. Конечно, если у метода есть требования CAS, которые вы не можете удовлетворить, вы не сможете его назвать. Пока у вас есть ReflectionPermission, я думаю, вы можете вызвать любой закрытый метод (который не требует каких-либо других разрешений). Исправьте меня, если я ошибаюсь ... –
ReflectionPermission - это то, о чем я думал. Без этого вы все равно можете вызвать публичных членов путем размышления. Но да, на самом деле это не полное доверие, которое требуется - будет редактировать. –
Спасибо за ответы как на Джон, так и на Мехрдада. –