有没有办法在DLL中自动运行一些代码?

时间:2016-09-27 08:20:55

标签: c# .net dll

我有一些来自第三方的DLL,我需要许可。它有一些我必须从我自己的DLL调用的方法。我的DLL在几个项目中被引用,我不想对每个主机进行更改。有没有我可以在我的DLL中使用的方法,它将调用我的DLL中的一些方法?喜欢添加一些静态类或构造函数,但没有从托管商那里明确调用该类?我不确定我是否清楚地解释清楚。如果需要,请提出问题。

ThirdPartyType license = new ThirdPartyType();
license.Load("license.xml");

这是一段许可代码,我想放在我的DLL中并在同一个DLL中调用它。

1 个答案:

答案 0 :(得分:2)

在低级别,运行时支持“模块初始值设定项”。但是,C#没有提供任何实现它们的方法,因此您可以管理的最接近的是静态构造函数(“type initializer”)或者只是常规构造函数。

但是,将许可连接到模块初始化程序或类型初始化程序可能是一个坏主意,因为您不知道它们何时运行,并且它可能会影响不会执行的代码访问你的lib 。把某人的应用程序关闭是有点不好意思,因为你的许可代码决定它不高兴 - 尤其是如果你的库当时没有被主动调用。

因此:我建议最合适的地方是构造函数或构造后Initialize(...)方法(除非提供有效的详细信息,否则工具拒绝工作)。

相关问题