小编Ove*_*lew的帖子

Json.Net - 不带引号的Serialize属性名称

我试图让Json.Net序列化一个没有引号的属性名称,并且发现很难在Google上找到文档.我怎样才能做到这一点?

它只是大型Json渲染的一小部分,所以我更喜欢添加属性属性,或者覆盖类的序列化方法.

目前,它呈现如下:

"event_modal":
{
    "href":"file.html",
    "type":"full"
}
Run Code Online (Sandbox Code Playgroud)

而且我希望让它呈现如下:( href并且type没有引号)

"event_modal":
{
    href:"file.html",
    type:"full"
}
Run Code Online (Sandbox Code Playgroud)

来自班级:

public class ModalOptions
{
    public object href { get; set; }
    public object type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# json.net

31
推荐指数
2
解决办法
3万
查看次数

使用Json.Net在MVC中返回未转义的Json

如何在MVC项目中使用Json.Net返回未转义的Json?

到目前为止,我序列化了一个基本对象,并让Json.Net对其进行序列化:

public JsonResult GetTimelineJson()
{
    var result = new MyGraph([some data...]);

    return Json(JsonConvert.SerializeObject(result), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

结果:

"{\r\n  \"id\": \"myGraph\",\r\n  \"title\": \"Graph title\",\r\n [...]
Run Code Online (Sandbox Code Playgroud)

任何将它包装成HtmlString等的尝试都会导致在线上传递一个空集(尽管调试点显示它正确地未转义).我已经检查过HTTP标头中是否正确设置了内容类型.

c# asp.net-mvc json json.net

18
推荐指数
3
解决办法
2万
查看次数

如何开始使用OAuth来保护Web API应用程序?

我有一个Web API应用程序,我知道OAuth将是API的标准安全模型,其中Authentication Server将负责生成授权令牌,以便用户可以发送到我们的服务器并使用服务.

我对此很新,但我理解所涉及的角色:

  • 资源所有者
  • 客户
  • 资源服务器
  • 授权服务器

但OAuth究竟在实践中是什么,而不是理论上的?它是一个.NET库吗?这是一家由独立公司提供的服务吗?这是我可以在我的本地开发机器上配置的东西,看看它是如何工作的?

如何开始使用OAuth来保护Web API应用程序?

c# security oauth asp.net-web-api

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

将ntext转换为nvcharmax(max) - 绕过大小限制

我正在尝试将现有的SQL NText列更改为nvcharmax(max),并在大小限制上遇到错误.我相信,有大量的现有数据,其中一些数据超过了8k的限制.

我们希望转换它,以便在LINQ中搜索该字段.

我尝试过的2x SQL语句是:

update Table
set dataNVarChar = convert(nvarchar(max), dataNtext)
where dataNtext is not null

update Table
set dataNVarChar = cast(dataNtext as nvarchar(max))
where dataNtext is not null
Run Code Online (Sandbox Code Playgroud)

而我得到的错误是:

Cannot create a row of size 8086 which is greater than the allowable maximum row size of 8060.
Run Code Online (Sandbox Code Playgroud)

这是使用SQL Server 2008.

任何帮助表示感谢,谢谢.


更新/解决方案:

下面标记的答案是正确的,SQL 2008可以在我的情况下将列更改为正确的数据类型,并且我们在其上使用的LINQ利用应用程序没有戏剧性:

alter table [TBL] alter column [COL] nvarchar(max)
Run Code Online (Sandbox Code Playgroud)

我也被建议跟进:

update [TBL] set [COL] = [COL]
Run Code Online (Sandbox Code Playgroud)

通过将数据从lob结构移动到表(如果长度小于8k)来完成转换,从而提高性能/保持正常.

sql nvarchar

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

角度路由器 - 当辅助路由也打开时,isActive()应该识别主路由吗?

我发现只要次要路线开放,它router.isActive就会返回false.

router.isActive适用于检查"是我的路线(X)?" (例如:付款页面) - 无论是hashstates,查询参数和辅助路由.

应该router.isActive是正确的服务/电话来推断这个?或者它是为了更简单的事情.还有其他选择吗?应该写我自己的服务?

例如:

  • 打开时/second,router.isActive('second', true)=== true
    • (好)
  • 打开时second(modal:my-modal),router.isActive('second', true)=== false
    • 问题:此功能现在不再有用,以确定我是否在第二
  • 打开时/second,router.isActive('', false)=== true.(非完全匹配返回真正的父/子状态

我已经创建了一个plnkr概念证明,以便于测试:

在此输入图像描述

angular-routing angular

13
推荐指数
1
解决办法
4427
查看次数

WebApi - 反序列化和序列化备用属性名称

我试图找出如何使用ASP.NET WebApi指定备用属性名称 - 并使其适用于反序列化+序列化以及JSON + XML.到目前为止,我只发现了部分解决方案.

我希望将属性名称公开为带有下划线的小写,并且(例如)为了具有不同的内部名称:

外部:

  • 现场一个
  • 现场二

内部:

  • ItemOne
  • ItemTwo

对于测试,这是一个POST控制器动作,只是传递它接收的内容:

// POST api/values
public TestSerialization Post([FromBody]TestSerialization value)
{
    return value;
}
Run Code Online (Sandbox Code Playgroud)

还有一个测试实体:

public class TestSerialization
{
    [DataMember(Name = "field_one")] // Doesn't appear to change anything
    public string ItemOne { get; set; }

    [JsonProperty(PropertyName = "field_two")] // Only works for serialization in JSON mode
    public string ItemTwo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现:

  • [DataMember(Name ="x")]对任一方向的序列化没有影响
  • [JsonProperty(Name ="x")]在使用JSON时处理序列化(返回值).(这是一个JSON.NET属性,默认的序列化程序).

对于测试数据,我提交了4个属性,以查看反序列化的值,以及反序列化时的属性名称

  • ItemOne ="价值A"
  • ItemTwo ="价值B"
  • field-one ="正确1"
  • field-two ="正确2"

我怎样才能做到这一点?

c# asp.net asp.net-web-api

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

string.Format,正则表达式+花括号(C#)

我如何使用string.Format在正则表达式中输入一个值,其中正则表达式中已经有大括号来定义重复限制?(我的思维是因为语法碰撞而混浊)

例如,正常的正则表达式是" ^\d {0,2} ",我希望从属性MaxLength中插入'2'

谢谢.

c# regex

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

缓慢的ASP.NET应用程序加载时间 - 我可以跟踪/跟踪/计算整个加载周期吗?

我正在处理的ASP.NET Web应用程序项目随着时间的推移而变得越来越慢(在IIS或.NET开发服务器中).目前需要:

  • 通过F5调试加载1:28分钟
  • 在构建之后在浏览器中刷新41秒(不重建)

该机器速度相当快 - 一台Core 2 Quad 2.40ghz,8 gig o'RAM,在HyperV下运行dev机器,分配给dev VM的2 gig o RAM.

有没有办法跟踪/报告初始负载的整个周期?如果我能看到基本的IIS工作进程启动需要多长时间,加载DLL,运行实际的.NET代码,那就太好了.

我知道我可以在代码上使用分析器 - 它没有发现任何超慢的DB连接建立时间,但我想在处理实际页面之前对这些东西的性能有一些了解.在整个过程中我可以看到CPU监视器有点达到100%,RAM使用量略有增加 - 但我正在寻找更好的洞察力,希望能有所改善.

虽然我没有在项目开始时(4个月前)进行任何测量,但我完全确定重装是一个相对轻而易举的事.

任何帮助都非常感激,程序员 - 他们只能喝 - 这么多咖啡,而建立 - 发生.

更新:

JetBrain的dotTrace非常出色(对于这个例子),谢谢.它具有启动Web项目的完美界面,并且很快突出显示大部分时间都在Application_Start()中(在Global.asax中).

其他选项不会选择这个,因为:

  • 跟踪选项只能从PreInit开始,缺少的Application_Start()调用.

  • 秒表电话会要求我知道去哪里找,或恢复到printf风格调试的美好时光...

  • nprof想要定位一个.exe,它会在尝试连接到新的w3wp.exe实例时错过目标区域...

asp.net performance w3wp load-time

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

MomentJS - 用于输入验证?

MomentJS是否用于用户输入解析?

我已经适应了简单的案例,让它接受DDMMYYYY订单中的日期,并处理一些变化.

在指定格式时,它无法特别好地处理无效日期 - 包括将日值设置得过高,或将年份值切换为2到4位之间.

年份解释的例子:

var date1 = moment('30082012', 'DDMMYYYY');
var date2 = moment('30082012', 'DDMMYY'); // Gives wrong year - 2020
var date3 = moment('300812', 'DDMMYYYY'); // Gives wrong year - 1900
var date4 = moment('300812', 'DDMMYY');
Run Code Online (Sandbox Code Playgroud)

希望无效日期的例子:

var date5 = moment('08302012', 'DDMMYYYY'); // Gives Jun 08 2014
var date6 = moment('08302012', 'DDMMYY'); // Gives Jun 08 2022
var date7 = moment('083012', 'DDMMYYYY'); // Gives Jun 08 1902
var date8 = moment('083012', 'DDMMYY'); // Jun 08 2014
Run Code Online (Sandbox Code Playgroud)

我用这些例子创建了一个JS小提琴:http …

parsing date momentjs

8
推荐指数
2
解决办法
8166
查看次数

Durandal 2.0 - 用于嵌套菜单的子路由器?

我正在构建一个应用程序,并希望显示一个2层菜单,两个层都始终可用.Durandal 2.0 推出了新的路由器,它支持"子路由器",可以更容易地进行深度链接.

我的问题 - 我可以永久加载我的'子级'导航路径(以及父级未处于活动状态时呈现的子菜单),或者是"子路由器"设计旨在延迟加载它们以在深层链接到达时评估它们被评估?

Durandal示例显示主导航寄存器是一个splat路由,然后当加载/激活该视图模型时,子路由器被注册.

例如:在Durandal 2.0提供的示例中,mian nev已注册 shell.js

router.map([
                { route: ['', 'home'], moduleId: 'hello/index', title: 'Validation test', nav: true },
                { route: 'knockout-samples*details',    moduleId: 'ko/index',               title: 'Knockout Samples',  nav: true, hash: '#knockout-samples' }
            ]).buildNavigationModel()
              .activate();
Run Code Online (Sandbox Code Playgroud)

然后ko/index.js视图模型注册孩子(上activate())

var childRouter = router.createChildRouter()
        .makeRelative({
            moduleId:'ko',
            fromParent:true
        }).map([
            { route: '',                moduleId: 'helloWorld/index',       title: 'Hello World',           type: 'intro' },
            { route: 'helloWorld',      moduleId: 'helloWorld/index',       title: 'Hello World',           type: 'intro',      nav: true},
            { …
Run Code Online (Sandbox Code Playgroud)

durandal hottowel durandal-navigation

8
推荐指数
1
解决办法
5575
查看次数