我认为如果我有2个不同的DLL,并且在每个DLL中我将同一个对象实例化为静态(例如,私有静态MyObject objRandom = new MyObject();),将创建它的2个实例。 / p>
如果我通过依赖注入将静态对象从DllA传递给DllB,我将只在堆栈中创建1个实例吗?
答案 0 :(得分:1)
这取决于您的代码,但最有可能是1个实例。每个AppDomain都会实例化静态,而不是每个DLL。您的DLL都已加载到同一个应用程序域中。
答案 1 :(得分:0)
对象不是静态的,引用是。您可以根据需要为同一实例提供尽可能多的引用。您示例中的静态内容是类中的引用,因此包含static MyObject objRandom...
的同一个类的不同实例将具有相同的实例。
如果其他类以静态或非静态方式引用同一对象,则可以。即使该类在另一个DLL中。
希望它澄清它是如何运作的。