【发布时间】:2015-04-21 09:20:48
【问题描述】:
我们有使用 CodeDom 编译到库中的代码。 在其中一些类中,我想添加 log4net 语句。
我不确定将以下行添加到将动态编译的代码中的语法(以便我可以在课程中稍后将日志对象用于日志):
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
到目前为止,我在构建代码的类中有以下内容:
//create log4net entry
CodeMemberField log4netField = new CodeMemberField(typeof(log4net.ILog), "log");
log4netField.Attributes = MemberAttributes.Static | MemberAttributes.Private;
然后我应该使用 InitExpression 吗?如:
log4netField.InitExpression = new CodePrimitiveExpression();
我似乎找不到如何在声明中为字段分配值,我也找不到如何将其声明为只读。
这有一些帮助:MSDN,但它没有我需要的所有示例。
所以,我的主要问题是如何添加这个:
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
我对 CodeDom 了解不多,但我怀疑如果我将其添加为字符串可能会不起作用?
【问题讨论】: