当从另一个程序集实例化时,我想在类库中执行某些代码.是否有类库的入口点或引导程序?我认为一个静态方法Main可以做到这一点,但我错了.此应用程序可能是配置和实例化记录器单例,未处理的异常处理程序等.
我试着寻找文档,但它很稀疏.我写了以下指南,希望它可以节省2-3个小时处理安装,设置和配置.
与MySQL全文搜索标准设置相比,使用Solr的性能提升非常惊人.绝对值得花时间在Magento安装中使用它.
在C#Web应用程序中使用NLog时,使用存储过程而不是SQL INSERT语句时遇到了一些问题.连接字符串"Logger"在Web.config中正确配置,并在用SQL语句替换commandText时正常工作.我希望得到正确方向的暗示.在此示例中,存储过程位于"Logs"模式下,称为"LogError".
<targets>
<target xsi:type="Database"
name="dberrorlog"
connectionStringName="Logger"
keepConnection="true"
commandText="[Logs].[LogError]" >
<parameter name="@ProgName" layout="MyAppName"/>
<parameter name="@CompName" layout="${machinename}"/>
<parameter name="@LogLevel" layout="${level}"/>
<parameter name="@UserName" layout="${identity}"/>
<parameter name="@Error" layout="${exception:format=Message}"/>
<parameter name="@SourceObj" layout="${exception:format=Method}"/>
<parameter name="@StackTrace" layout="${exception:format=StackTrace}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Error" writeTo="dberrorlog" />
</rules>
Run Code Online (Sandbox Code Playgroud) 我有一个控制台应用程序执行类方法(在另一个项目中).此方法异步执行对Web服务的POST(这是3分钟的冗长操作)并且具有回调,该回调返回受POST影响的记录数.与此同时,程序继续执行其他不到3分钟的事情,程序在回调返回之前退出.
在过去,我使用了如下所示的ManualResetEvent来防止完成,但在这种情况下,我的方法是在一个不同的类库中,我希望尽可能保持干净.
static ManualResetEvent resetEvent = new ManualResetEvent(false)
static void Main()
{
CallAsyncMethod();
// Do other things...
resetEvent.WaitOne(); // Blocks until "set"
}
void AsyncMethodCallback()
{
// Do processing on completion...
resetEvent.Set(); // Allow the program to exit
}
Run Code Online (Sandbox Code Playgroud)
如果没有用执行标志来污染被调用的类,我会感激任何帮助,想出一个干净的模式来完成这个任务.