这是我的日志签名
public static void Debug(string message,Exception exception = null,object model = null,object userId = null,[CallerMemberName] string memberName = "",params object[] formatParams)
我试图用它说像
Logger.Debug("My message: {0} {1}", formatParams:1,2)
我该怎么做?我无法在网上找到它,我希望这是可能的。我尝试了一种类型,但没有工作。
Logger.Debug("My message: {0} {1}", formatParams: new{1,2})
分辨率: 我最终使用下面的例子。我在使用任何其他语法时遇到了不同的错误,所以想确保将其保存在此处。
Logger.Debug("My message: {0} {1} {2}", formatParams: new object[] { 1, "string", 123.12m });
编辑: 我的问题是我最终与formatParams传递的动态有关,我通过在记录它之前将其转换为实际类型来修复它。
答案 0 :(得分:4)
是的,你可以。你只需要用这样的数组来调用它:
Logger.Debug("My message: {0} {1}", formatParams: new object[] { 1, 2 });
对于单个参数,这不是必需的,您可以使用:
Logger.Debug("My message: {0}", formatParams: 1);
请注意,在许多情况下,您还可以使用隐式类型数组:
Logger.Debug("My message: {0} {1}", formatParams: new[] { 1, 2 });
但是,这将传递一个对象数组,其中包含一个整数数组。参数值看起来实际上是这样的:
new object[] { new int[] { 1, 2 } }