首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json.net模式IsValid慢

json.net模式IsValid慢
EN

Stack Overflow用户
提问于 2015-08-06 09:29:10
回答 1查看 608关注 0票数 3

我有一个使用JSON消息与客户端通信的web服务,运行时本身不知道数据模型,这就是为什么我使用json.net模式来验证来自客户端和服务本身的消息,但是它在性能方面造成了大量开销。

仍然包含足够的上下文以理解我正在做什么的简化代码。

代码语言:javascript
复制
public class Template
{
    /// <summary>
    /// Template known as
    /// </summary>
    public string Name { get; private set; }
    /// <summary>
    /// Razor Template
    /// </summary>
    public string RazorTemplate { get; private set; }
    /// <summary>
    /// Json Schema definition
    /// </summary>
    public string Schema { get; private set; }

    private JSchema _schema { get; set; }

    private JSchema JSchema
    {
        get
        {
            if (_schema == null)
                _schema = JShema.Parse(Schema);

            return _schema;
        }
    }

    private void Validate(JObject obj)
    {
        // Schema validation Error messages.
        IList<string> ValidationError;

        // Schema validation.
        if (!obj.IsValid(JSchema, out ValidationError))
        {
            throw new Exception(string.Join(",", ValidationError.ToArray()));
        }
    }


    public string RunTemplate(JObject jobj)
    {
        // Validate Json Object. 
        Validate(jobj);

        // Code here that access our RazorEngine cache, and add then run Razor Template, or directly run a cached Razor Template...

        return "Here we return string generated by RazorEngine to sender.";
    }
}

假设我运行了一个简单的"Hello @Model.Name!“验证json有字符串名称的模板--这是15-20 乘以的速度--如果我完全注释掉验证的话。

是否有更有效的方法在IsValid模式中使用Json.Net?

EN

回答 1

Stack Overflow用户

发布于 2015-08-29 13:28:12

请确保更新到NuGet上可用的最新版本的NuGet架构,在使用旧版本验证某些架构时,性能很慢。

此外,还有Json.NET模式业绩最佳做法网站上的文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31851961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档