小编Mit*_*hon的帖子

自定义行为不会在我的web.config中注册

我有一个使用Json.NET(newtonsoft)作为自定义序列化程序的工作应用程序.目前我在自定义的WebServiceHostFactory中添加了WebHttpBehavior的衍生物.请参阅本博客末尾的代码段,了解我是如何附加它的.

由于我在IIS中托管此服务,我想摆脱我的自定义托管代码,只需将自定义行为添加到我的web.config.该程序显示在这篇msdn文章中.

所以我试着这样做:

<behaviors>
  <endpointBehaviors>
    <behavior name="jsonRest">
      <webHttp defaultOutgoingResponseFormat="Json" />
      <NewtonsoftJsonBehavior/>
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<extensions>
  <behaviorExtensions>
    <add name="NewtonsoftJsonBehavior" type="Newtonsoft.Json.Extensions.NewtonsoftJsonBehavior, NewtonsoftJsonExtensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
  </behaviorExtensions>
</extensions>
Run Code Online (Sandbox Code Playgroud)

可悲的是,我无法做那项工作.当我这样做时,Visual Studio告诉我

元素'behavior'具有无效的子元素'NewtonsoftJsonBehavior'

在上面提到的msdn文章中,据说是这样的

要向元素添加配置功能,您需要编写和注册配置元素.有关此内容的更多信息,请参阅System.Configuration文档.

定义元素及其配置类型后,可以使用扩展名,如以下示例所示.

我有这种感觉,我所缺少的就是那个.以某种方式注册元素及其配置类型.可悲的是,我无法对System.Configuration做出正面或反面,它应该告诉我如何做到这一点.所以这基本上是我的问题:

如何编写和注册配置元素,如果这不是我的问题,那么问题是什么?

提前谢谢了!

iis wcf configuration-files wcf-behaviour

20
推荐指数
1
解决办法
1万
查看次数

如何更改数字反序列化的默认类型?

我正在将一些属性反序列化为a Dictionary<string, object>.

当我反序列化JSON一些,它填充DictionaryInt64对象,而不是Int32.我希望它能够选择Int32作为默认值,知道我可以使用转换时会溢出的javascript数字.在这种情况下抛出异常是完全可以接受的.

有没有办法实现这一目标?我希望有一些很好的属性或一个方便的界面,可以实现并添加到JsonSerializer.而且我担心我必须深入到Json.NET的深处.

基本上我想有一些方法来控制对象的已知类型,这样我就可以Int32代替Int64DateTimes不是代替Strings.

c# json.net

19
推荐指数
1
解决办法
1万
查看次数

我应该将RouteParameter或UrlParameter用于Asp.NET web-api路由吗?

我已经看到两个都被使用,所以我想,他们做同样的事情或不同的事情?如果是后者,有什么区别?

我试着通过浏览视觉工作室MVC 4(rc)web api模板来尝试回答它,但遗憾的是它使用了两者,所以我的困惑仍然存在.这是模板包含的内容:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

c# routes asp.net-mvc-routing asp.net-mvc-4

11
推荐指数
1
解决办法
4027
查看次数

如何进行工人之间的沟通?

我正在尝试网络工作者,并且想知道他们如何处理难以置信的并行问题.因此,我实施了Connaway的生命游戏.(比做一个模糊或其他东西更有趣.但是在那种情况下问题会是相同的.)

目前,我有一个Web工作人员执行迭代并为UI线程发布新的ImageData以放置在我的画布中.很好地工作.

然而,我的实验并没有结束,因为我有几个CPU可用,并希望平行我的应用程序.

因此,首先,我将数据分成两部分,中间部分,然后让两个工人分别处理一半.问题当然是分裂.工人A需要来自工人B的一列像素,反之亦然.现在,我可以通过让我的UI线程将该列提供给工作人员来清楚地解决这个问题,但如果我的线程可以直接将它们传递给彼此,那会更好.

当进一步拆分时,每个工人只需要跟踪它的邻居工作者,UI线程只负责更新UI(应该是这样).

我的问题是,我看不出如何实现这种从工人到工人的沟通.我尝试通过初始化postMessage将邻居交给彼此,但这会复制我的工作人员,而不是放下参考文件,幸运的是,Chrome警告我不可能.

Uncaught Error: DATA_CLONE_ERR: DOM Exception 25
Run Code Online (Sandbox Code Playgroud)

最后我看到有一种叫做a的东西SharedWorker.这是我应该研究的,还是有办法用Worker它来解决我的问题?

javascript html5 web-worker

9
推荐指数
1
解决办法
1008
查看次数

在Ext JS 4 MVC应用程序中,应该负责加载商店?

考虑一个复杂的应用程序,其中您有自定义过滤逻辑和不同的加载模式; 隐藏时延迟加载,隐藏时不加载,但在显示时加载并在修改自定义过滤器时重新加载等.

mvc app的哪个部分应该负责加载,以及如何连接它?

javascript model-view-controller extjs4 extjs-mvc

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

如何将引用的对象展平为referer上的两个json.net属性?

考虑以下课程:

public class User
{
  public virtual int Id {get;set;}
  public virtual string Name {get;set;}
  public virtual User Superior {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我的目标是使用newtonsofts json.net将其序列化为json,如下所示:

{
  Id: 101,
  Name: 'Mithon',
  SuperiorId: 100,
  SuperiorName: 'TheMan'
}
Run Code Online (Sandbox Code Playgroud)

我为什么要这样做?因为我想使用Json作为我的DTO而不生成动态对象的中间层.生成DTO应该按惯例动态完成,而不是明确地,imho.我知道有些人可能强烈不同意这一点,但讨论我的方法除了重点之外.我只想知道是否以及如何做到这一点.

挑战是使用JsonPropertyAttribute高级属性只会产生一个属性作为输出,我需要两个属性.如果我使用了一个JsonObjectAttribute我会得到一个嵌套属性,我会遇到顶级用户也被弄平的问题.

幸运的是,似乎json.net库中有足够的受保护和/或公共属性和方法,我可以扩展一些东西以获得所需的结果.接下来的问题是我应该从哪些类和方法开始,到达我想去的地方?将从DefaultContractResolver派生,并覆盖GetProperties方法是好地方,还是我应该寻找其他地方?

.net serialization json.net

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

如何将xslt模板应用于字符串?

给定一个用于在值周围构建一些html的模板,我想传入一个字符串,而不是一个节点集.作为一个例子,我想连接一些值并将其传递给模板.我怎么能做到这一点呢?

<xsl:template match="text()" mode="kvp-print-single">
    <tr>
        <td colspan="3"><xsl:value-of select="."/></td>
    </tr>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

...

<xsl:apply-templates select="concat=(haba/hiba:text(), ' - ', huba/baba:text())" mode="kvp-print-single"/>
Run Code Online (Sandbox Code Playgroud)

ErrorMsg:xml或样式表文件无效!

异常:System.Xml.Xsl.XsltException:表达式必须求值为节点集.

string xslt nodes xslt-1.0

3
推荐指数
1
解决办法
1294
查看次数