C# 执行前的许可证检查

C# 执行前的许可证检查,c#,licensing,C#,Licensing,我们有一个应用程序(用.NETFramework3.5上的C#编写),它使用我们的自定义许可机制进行许可。在当前的实现中,在每个方法中,我们首先检查机器是否具有有效的许可证。对我来说,这有点尴尬。有没有办法让运行时在创建对象或执行方法之前检查许可证?编写自定义属性会解决这个问题吗 非常感谢您的任何想法或解决方案 谢谢,, Suresh也许静态构造函数将帮助您您可以签入mainmethod/static构造函数 如果它不适合您(许可证是一年的,并且它是一个可以运行数年而不重新启动的服务器-对于Wi

我们有一个应用程序(用.NETFramework3.5上的C#编写),它使用我们的自定义许可机制进行许可。在当前的实现中,在每个方法中,我们首先检查机器是否具有有效的许可证。对我来说,这有点尴尬。有没有办法让运行时在创建对象或执行方法之前检查许可证?编写自定义属性会解决这个问题吗

非常感谢您的任何想法或解决方案

谢谢,,
Suresh

也许静态构造函数将帮助您

您可以签入
main
method/static构造函数


如果它不适合您(许可证是一年的,并且它是一个可以运行数年而不重新启动的服务器-对于Windows来说不太可能,但仍然是可能的),请检查它是否不是您想要的。这将是一个直接的一对一重构(无论多么干净)。

也许您可以检查以确保导入代码时此人拥有有效的许可证。比方说,当有合适的许可证时,它将解密库。

在每次方法调用开始时检查许可证(属性呢?这些属性毕竟会被编译为方法)。为什么不在可执行文件首次启动时检查一次呢?程序运行时,许可证是否真的有失效或被篡改的风险?@fructedWithFormsDesigner我认为这是为了防止人们修补程序集而跳过许可证检查代码。对程序集进行强命名可以防止被篡改的版本运行,但我不确定是否有办法解决这个问题。谢谢您的回答。我的产品是WCF服务器,有些服务需要许可证,有些服务不需要。因此,无论服务需要许可证,我们都会在那里检查许可证。我正在考虑使用一个自定义的安全属性来装饰这个类。这样行吗?