我正在尝试为.NET项目构建一个小的日志记录。
在一个程序集中,我有一个Log类,其方法如(VB,抱歉,但这是自解释的)
Public Sub appendRow(message as String, file As String)
将从代码中的任何位置调用此方法;主要应用程序,还有其他程序集。
有问题的文件是我想写的文件。我的问题是处理这个文件的位置。
选项1:在日志程序集中对其进行硬编码:
Public Sub appendRow(message as String)
Const file = ...
优点:实施起来非常简单,现在没有麻烦等等。
缺点:当我想重新使用这个组件时,我已经搞砸了。
选项2:将文件存储在主应用程序的设置中,并将其传播
我将改变我的所有功能
Public Function myFunction(someparam)
到
Public Function myFunction(someparam, file As String)
优点:它有效,它只依赖于主应用程序中参数的值。
缺点:它为代码带来了很多复杂性,使用函数中没有用的参数,除了传递给调用堆栈中更深层的其他函数。
我觉得有更好的方法来做到这一点,即。能够仅将参数存储在主应用程序中,并在程序集中使用它,而不会影响将来重新使用程序集,或更改所有函数定义以包含此参数。然而,尽管我付出了最大努力,但我无法找到这种中间道路。你能给我任何指示吗?