将静态对象从一个dll传递到另一个dll

时间:2012-10-31 02:14:05

标签: c#

我认为如果我有2个不同的DLL,并且在每个DLL中我将同一个对象实例化为静态(例如,私有静态MyObject objRandom = new MyObject();),将创建它的2个实例。 / p>

如果我通过依赖注入将静态对象从DllA传递给DllB,我将只在堆栈中创建1个实例吗?

2 个答案:

答案 0 :(得分:1)

这取决于您的代码,但最有可能是1个实例。每个AppDomain都会实例化静态,而不是每个DLL。您的DLL都已加载到同一个应用程序域中。

答案 1 :(得分:0)

对象不是静态的,引用是。您可以根据需要为同一实例提供尽可能多的引用。您示例中的静态内容是类中的引用,因此包含static MyObject objRandom...的同一个类的不同实例将具有相同的实例。

如果其他类以静态或非静态方式引用同一对象,则可以。即使该类在另一个DLL中。

希望它澄清它是如何运作的。