我正在尝试将一些先前制作的代码拆分为DLL。这是一个简单的记录器系统。
有一些事情需要与项目中的主窗体共享,所以我将它们设置为共享变量,但我不经常使用共享内容,我担心它会导致变量冲突范围。我想我会在这里发表一篇关于它的帖子,看看是否有人可以解释我不完全理解的内容。
由于这是一个记录器,它将被用于几个地方。其他需要日志记录的DLL可以通过实例化对象和项目引用来引用它。我的主窗体还有一个实例对象和对logger库的引用。
由于我的一个属性是一个连接字符串并且它是共享的,这是否意味着我在DLL中的logger类的实例将具有与我的主UI表单上的实例相同的共享值?或者实例是否在DLL内部提供了我需要的范围边界?我希望它能做到......
我主要担心我可能想要使用两个不同的连接字符串进行记录。
(我希望我的问题有道理。如果没有,请发表评论,我会尽力澄清。)
答案 0 :(得分:0)
不,实例在DLL中的事实不提供您需要的范围边界。如果DLL中的类或成员被声明为static
,那么它们将被共享,您可能会遇到问题。所以,只是不要声明它们static
并确保在使用它们时创建对象的new
个实例,你应该没问题。