C# 使用Nlog将自定义对象写入sql server数据库表

C# 使用Nlog将自定义对象写入sql server数据库表,c#,wcf,nlog,C#,Wcf,Nlog,我正在使用nlog通过aWCP服务应用程序使用C#.NET 4.0记录到sql数据库,这可以正常工作: NLOG配置 <target name="database" xsi:type="Database"> <connectionString> CONNECTION DETAILS REMOVED </connectionString> <commandText> insert into tablex ( App

我正在使用nlog通过aWCP服务应用程序使用C#.NET 4.0记录到sql数据库,这可以正常工作:

NLOG配置

<target name="database" xsi:type="Database">
  <connectionString>
    CONNECTION DETAILS REMOVED
  </connectionString>
  <commandText>
    insert into tablex (
    Application, Logged, Level, Message,
    ServerName, Port, Url, Https,
    ServerAddress, RemoteAddress,
    Logger, Callsite, Exception
    ) values (
    @Application, @Logged, @Level, @Message,
    @ServerName, @Port, @Url, @Https,
    @ServerAddress, @RemoteAddress,
    @Logger,@CallSite, @Exception
    );
  </commandText>
  <parameter name="@application" layout="" />
  <parameter name="@logged" layout="${date:format=yyyy-MM-ddTHH\:mm\:ss.fff" />
  <parameter name="@level" layout="${level}" />
  <parameter name="@message" layout="${message}" />


  <parameter name="@serverName" layout="" />
  <parameter name="@port" layout="" />
  <parameter name="@url" layout="" />
  <parameter name="@https" layout="" />

  <parameter name="@serverAddress" layout="" />
  <parameter name="@remoteAddress" layout="" />

  <parameter name="@logger" layout="${logger}" />
  <parameter name="@callsite" layout="" />
  <parameter name="@exception" layout="${exception:tostring}" />
</target>

已删除连接详细信息
插入表格X(
应用程序、记录、级别、消息、,
服务器名、端口、Url、Https、,
服务器地址,远程地址,
记录器,调用站点,异常
)价值观(
@应用程序、@Logged、@Level、@Message、,
@服务器名、@Port、@Url、@Https、,
@服务器地址,@RemoteAddress,
@记录器,@CallSite,@Exception
);
我试图记录一个由web服务返回的自定义对象,并想知道是否可以轻松地存储它

我尝试了以下几点:

CustomType returnPayload = controller.TransferPatient(request)
logger.Debug<CustomType>("Return Payload",returnPayload);
CustomType returnPayload=controller.TransferPatient(请求)
调试(“返回有效载荷”,返回有效载荷);
但不确定如何将其写回@CallSite参数,该参数是sql server中的nvarchar(MAX)类型。

发现:

logger.Debug("Return Payload {@value1}", new { requestInfo = request, Return = returnPayload});
这将使用以下命令写入值:

<parameter name="@message" layout="${message}" />

能否将对象转换为JSON并将字符串存储在数据库中?