Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NLog问题使用WCF C#.NET将对象写入数据库_C#_Nlog - Fatal编程技术网

NLog问题使用WCF C#.NET将对象写入数据库

NLog问题使用WCF C#.NET将对象写入数据库,c#,nlog,C#,Nlog,我目前在使用NLog将XML值写入数据库表时遇到问题。我正在使用WCF和C# 我有一个正在写入数据库的请求XML对象,如果我按如下方式使用内置的“消息”对象,它会工作: NLog.Config <parameter name="@message" layout="${message}" /> 但如果我尝试将其写入另一个字段,例如: 它不会将对象的值写入表,但是: “MyServices.Types.Request” 请求类型为: namespace MyServices.Typ

我目前在使用NLog将XML值写入数据库表时遇到问题。我正在使用WCF和C#

我有一个正在写入数据库的请求XML对象,如果我按如下方式使用内置的“消息”对象,它会工作:

NLog.Config

<parameter name="@message" layout="${message}" />
但如果我尝试将其写入另一个字段,例如:


它不会将对象的值写入表,但是:

“MyServices.Types.Request”

请求类型为:

namespace MyServices.Types
{
    [DataContract]
    public class Request
    {
        [DataMember]
        public string MessageHeader { get; set; }
        [DataMember]
        public int EventType { get; set; }
        [DataMember]
        public string Identification { get; set; }
        [DataMember]
        public DateTime VisitDate { get; set; }

    }
}
这有什么原因吗?“Message”属性似乎工作正常(这是旧NLog版本的答案。有关最新信息,请参阅Rolf的答案)

即使使用结构化日志记录,事件属性也不会转换为结构化格式,而是使用
ToString

目前只支持JSON序列化,不支持XML



有关更多选项和示例,请参见。NLog 4.6允许您将XML呈现到数据库目标:

<parameter name="@Request" DbType="SqlDbType.Xml">
   <layout type="xmllayout" includeAllProperties="true" />
</parameter>


NLog 4.6还允许您为参数设置DbType。请参见

嗨,谢谢你的帮助。我已经尝试了以上两个例子,但不幸的是仍然得到相同的输出。“MyServices.Types.Request”。您可以尝试将其记录到文件中吗?当我登录到一个文件时,向我们显示MyServices.Types.Requestsame类型可能也很有用。我用类型定义更新了这个问题,它确实错了。更新了答案,但目前只支持JSON
<parameter name="@Request" DbType="SqlDbType.Xml">
   <layout type="xmllayout" includeAllProperties="true" />
</parameter>