小编Mat*_*egg的帖子

DataContract模型绑定到ASP.NET MVC操作方法参数中的JSON

MVC3开箱即用JsonValueProviderFactory(),它非常方便将传入的JSON绑定到模型.不幸的是,我无法弄清楚如何设置名称与传入JSON不同的模型合同.例如:

[DataContract(Name = "session")]
public class FacebookSession
{
    [DataMember(Name = "access_token")]
    public string AccessToken { get; set; }

    [DataMember(Name = "expires")]
    public int? Expires { get; set; }

    [DataMember(Name = "secret")]
    public string Secret { get; set; }

    [DataMember(Name = "session_key")]
    public string Sessionkey { get; set; }

    [DataMember(Name = "sig")]
    public string Signature { get; set; }

    [DataMember(Name = "uid")]
    public string UserId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

传入表示facebook会话的json对象时,属性secret和expires正确绑定,但其余部分没有,因为属性名称与json键名称不同.我希望datacontract序列化程序可以尝试绑定到属性中提供的名称,但似乎并非如此.有没有人有任何解决方法的建议?

编辑

我将如何使用此模型的示例:

    public ActionResult Log(int? custId, FacebookSession response)
    {       
          ViewBag.Id …
Run Code Online (Sandbox Code Playgroud)

c# model-binding datacontractserializer modelbinders asp.net-mvc-3

7
推荐指数
1
解决办法
6844
查看次数

为什么我的log4net日志条目不会出现在Windows 7的Chainsaw中

我试图让log4net通过udp登录到电锯,但它不能在Windows 7上工作.我的配置文件如下:

  <log4net debug="true">
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
  <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  </layout>
</appender>
<appender name="UdpAppender" type="log4net.Appender.UdpAppender">
    <remoteAddress value="127.0.0.1" />
    <remotePort value="8085" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
      <locationInfo value="true" />
    </layout>
</appender>
<root>
  <level value="TRACE" />
  <appender-ref ref="trace" />
  <appender-ref ref="UdpAppender" />
</root>
Run Code Online (Sandbox Code Playgroud)

我的电锯配置文件如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">    
    <plugin name="UDPReceiver" class="org.apache.log4j.net.UDPReceiver">
        <param name="Port" value="8085" />
    </plugin>    
</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)

所有这些都是根据以下文档找到的:http://logging.apache.org/log4net/release/howto/chainsaw.html

然而,没有任何日志出现.

log4net log4j windows-7 apache-chainsaw

6
推荐指数
1
解决办法
811
查看次数