我目前正在使用内置的TraceListener开发应用程序日志库.这个库将在许多项目中使用,并且应该提供一个简单的界面,我只需要关心将什么内容写入日志文件,而不是如何.
通过使用反射命名空间,我可以找出当前称为日志函数的应用程序(检索执行程序集名称),但我还想要调用日志记录函数的函数和类的名称.
比方说我有:
public static void LogInfo(string vLogText) {
Trace.WriteLine(
MethodInfo.GetCurrentMethod().Name
+ this.GetType().ToString() + vLogText);
}
Run Code Online (Sandbox Code Playgroud)
当我从另一个项目调用时(类:TestClass,方法:TestMethod)
Tracer.LogInfo("log this!")
Run Code Online (Sandbox Code Playgroud)
我希望在日志中看到:
TestClass, TestMethod, log this!
Run Code Online (Sandbox Code Playgroud)
但相反,我得到了
TracerClass, LogInfo, log this!
Run Code Online (Sandbox Code Playgroud)
如何获取父方法和类名?
在我们公司,我们与多个数据库系统(MySQL,MSSQL,PL/SQL,SQlite和SQLCe)合作开展各种项目.因此,我们开发了一个库,将所有内容放入一个很好的界面,我们可以连接到每个数据库,而不必担心现在背后的数据库.但是这个库总是需要在客户端计算机上安装每个数据库,因为.Net坚持认为(因为引用).因此,我们使用MEF创建数据库插件,其中应用程序仅在启动时加载适当的插件,并且我们不需要在主机系统上安装任何其他数据库系统.
无论如何,由于每个数据库的不同,我们仍然在努力.假设我们希望程序能够在目标数据库中自动生成所需的表和数据(如果它们不可用).或者,如果不同的数据库使用不同的数据类型.事情变得非常复杂,至于现在,我们也对使用LINQ2SQL感兴趣,LINQ2SQL似乎无法处理MySQL,SQlite和PL/SQL.
我的问题:
是否有任何免费/ oss C#库接管这项任务?我们可以完全控制我们的数据库而不考虑现在背后的数据库?
如果我有子网掩码,例如255.255.255.0IP地址192.168.1.5,是否有一种简单的方法来确定该子网内所有可能的IP地址?
在这种情况下:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
...
...
192.168.1.252
192.168.1.253
192.168.1.254
192.168.1.255
Run Code Online (Sandbox Code Playgroud)
直到现在我发现的都是重载的.net库.是否有任何本地方法使用默认名称空间解决此问题?
所以,我检查一个字符串是否包含来自数组的某个单词,并带有以下语句:
if(stringArray.Any(s => stringToCheck.Contains(s)))
Run Code Online (Sandbox Code Playgroud)
简单.现在找到匹配并且该陈述为真.但我想知道数组中哪个项与字符串匹配.上面LINQ语句中的占位符"s"在以下子句中不可用.
希望有人有个主意.我可以循环遍历数组,是的,但LINQ对我来说看起来更好.=)