小编Bra*_*ton的帖子

在默认构造函数中初始化的 JSON.Net 集合不会被反序列化的 JSON 覆盖

我有一个将集合初始化为默认状态的类。当我从一些保存的 JSON 加载对象时,它会附加值而不是覆盖集合。有没有办法在反序列化而不是附加值时让 JSON.Net 替换集合?

void Main() {
    string probMatrix = "{\"Threshold\":0.0276,\"Matrix\":[[-8.9,23.1,4.5],[7.9,2.4,4.5],[9.4,1.4,6.3]]}";
    var probabiltyMatrix = JsonConvert.DeserializeObject<ProbabiltyMatrix>(probMatrix);
    probabiltyMatrix.Dump();
}

// Define other methods and classes here
public class ProbabiltyMatrix {

    public ProbabiltyMatrix() {
        // Initialize the probabilty matrix
        Matrix = new List<double[]>();
        var matrixSize = 3;
        for (var i = 0; i < matrixSize; i++) {
            var probArray = new double[matrixSize];
            for (var j = 0; j < matrixSize; j++) {
                probArray[j] = 0.0;
            }
        Matrix.Add(probArray);
        }
    }

    public double Threshold; …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

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

访问Amazon Mechanical Turk的最简单示例是什么?

我正在寻找一个在C#中访问Amazon Mechanical Turk Web服务的简单示例.我知道有一个用于C#的SDK,但我想在使用之前了解基本的机制.

c# mechanicalturk

4
推荐指数
1
解决办法
707
查看次数

使用变量名数组反序列化 JSON

我正在获取从 REST Web 服务返回的用于调查响应的 JSON。它有一些名称值对的名称部分的数组。此外,名称将根据所问问题的类型而变化。我正在使用 JSON.net 并尝试将返回的值反序列化为某种类型的对象树,我可以遍历该对象树,但无法确定使用什么结构来填充它。

我在 LinqPad 中测试了以下代码段,并且字段始终为空。有什么方法可以轻松读取变量数据还是必须在代码中解析它?

void Main() {
    string json = @"{
      'result_ok':true,
      'total_count':'51',
      'data':[{
        'id':'1',
        'status':'Deleted',
        'datesubmitted':'2015-01-12 10:43:47',
        '[question(3)]':'Red',
        '[question(4)]':'Blue',
        '[question(18)]':12,
        '[variable(\'STANDARD_IP\')]':'127.0.0.1',
        '[variable(\'STANDARD_GEOCOUNTRY\')]':'United States'
      }]
    }";
    var responses = JsonConvert.DeserializeObject<RootObject>(json);
    responses.Dump();
}

public class RootObject {
    public bool result_ok { get; set; }
    public string total_count { get; set; }
    public List<Response> data { get; set; }
}

public class Response {
    public string id { get; set; }
    public string status { get; …
Run Code Online (Sandbox Code Playgroud)

c# json json.net json-deserialization

4
推荐指数
1
解决办法
2465
查看次数

示例AJAX回调到ASP.NET Core Razor页面

我发现在页面上有多个处理程序的示例以及相关的命名约定(即OnPostXXX)和'asp-post-hanlder'标记帮助程序.但是如何从AJAX调用中调用其中一个方法.

我有一个典型的MVC视图和控制器的旧示例,但这如何与Razor页面一起使用?

例如,如果我使用基本应用程序并将About.cshtml页面修改为以下内容:

@page
@model AboutModel
@{
    ViewData["Title"] = "About";
}
<h2>@ViewData["Title"]</h2>
<h3>@Model.Message</h3>

    <input type="button" value="Ajax test" class="btn btn-default" onclick="ajaxTest();"  />

@section Scripts {
<script type="text/javascript">
    function ajaxTest() {
        console.log("Entered method");
        $.ajax({
            type: "POST",
            url: '/About', // <-- Where should this point?
            contentType: "application/json; charset=utf-8",
            dataType: "json",
        error: function (xhr, status, errorThrown) {
            var err = "Status: " + status + " " + errorThrown;
            console.log(err);
        }
        }).done(function (data) {
            console.log(data.result);
        })
    }
</script>
}
Run Code Online (Sandbox Code Playgroud)

在模型页面About.cshtml.cs上

public class AboutModel : …
Run Code Online (Sandbox Code Playgroud)

c# ajax asp.net-core-2.0 razor-pages

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

Azure Pipeline - 增加内部版本号并在 Web 应用程序中显示

我有以下简单的构建管道在 Azure DevOps 中工作,发布版本部署到暂存槽。

在此处输入图片说明

我想要一个构建修订/版本字符串,它是自动递增的。然后我想在我的网络应用程序中显示它,这样我就可以知道正在生产的软件版本。

目前我显示 .csproj 文件中的版本字符串。像这样的东西在

<Version>1.1.4.7</Version>
Run Code Online (Sandbox Code Playgroud)

然后使用以下代码显示在网页上:

Version: @typeof(Startup).Assembly.GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)

如果我可以更新现有的版本字符串,那就太好了,但我愿意更改为最容易集成到 CI 过程中的任何内容。

build azure-devops asp.net-core

4
推荐指数
1
解决办法
8207
查看次数

Razor Pages - 在所有 OnGet 处理程序之后从基类调用方法

我有一个从 PageModel 继承的基类(称为 BmsPageModel)。我需要在每个页面上调用 BmsPageModel 中的一个方法,以便可以根据权限正确填充菜单。

如何让从我的基类继承的每个页面在每个 OnGet 处理程序期间/之后调用此方法,而无需在每个页面中手动键入?

c# asp.net-core razor-pages

4
推荐指数
1
解决办法
1596
查看次数

使用 JSON.Net 设置颜色的默认值

使用以下测试类

public class Test {
    [DefaultValue("Black")] 
    public Color ForeColor = Color.Black;
}
Run Code Online (Sandbox Code Playgroud)

以及以下序列化代码:

var test = new Test();
var json = JsonConvert.SerializeObject(test, Newtonsoft.Json.Formatting.None,
    new JsonSerializerSettings {
        NullValueHandling = NullValueHandling.Ignore,
        DefaultValueHandling = DefaultValueHandling.Ignore
});
Run Code Online (Sandbox Code Playgroud)

我明白了

{"ForeColor":"Black"}
Run Code Online (Sandbox Code Playgroud)

如果 Color 属性与指定的默认值相同,是否有一种(简单)方法可以使 Color 属性不被序列化。

c# json json.net

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

上传到 Azure 文件存储因大文件而失败

尝试上传大于 4MB 的文件会导致RequestBodyTooLarge抛出异常并显示以下消息:

The request body is too large and exceeds the maximum permissible limit.
Run Code Online (Sandbox Code Playgroud)

虽然此限制记录在 REST API 参考 ( https://learn.microsoft.com/en-us/rest/api/storageservices/put-range ) 中,但未记录 SDK 上传* 方法 ( https:// learn.microsoft.com/en-us/dotnet/api/azure.storage.files.shares.sharefileclient.uploadasync?view=azure-dotnet)。也没有解决此问题的示例。

那么如何上传大文件呢?

c# azure azure-files

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

获得单个子元素的最佳方法

我们有C#代码来处理我们创建的各种XML文档.通常我们需要获得一个已知的子元素(它可能是唯一的孩子或可能有其他兄弟姐妹).我有一个给父母的函数,子名称将返回子元素:

public static XmlElement GetChildElement(XmlElement parentElement, string childName) 
{
    return parentElement.GetElementsByTagName(childName).Cast<XmlElement>().FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但有一天我想知道是否可以使用XPath或LINQ to XML更清晰,更容易.我发现的大多数XPath示例似乎都想知道文档的整个结构,我想要一个只知道父和子的泛型函数.Linq to XML似乎更有前途,但我没有找到一个匹配我正在寻找的例子.

c# xml xpath linq-to-xml

0
推荐指数
1
解决办法
120
查看次数

将TableStyle应用于Word表

尝试使用预定义的样式来样式化表,但是没有任何效果。我尝试了一个新创建的文档和一个从保存的模板创建的文档。使用SDK Productivity工具,我可以看到模板中有样式,但尚未应用。我尝试添加样式或直接设置样式,但似乎都没有用。

    public static void CreateWordprocessingDocument(string fileName) {

        string[,] data = {
            {"Texas", "TX"},
            {"California", "CA"},
            {"New York", "NY"},
            {"Massachusetts", "MA"}
        };

        using (var wordDocument = WordprocessingDocument.Open(fileName, true)) {

            // We need to change the file type from template to document.
            wordDocument.ChangeDocumentType(WordprocessingDocumentType.Document);

            var body = wordDocument.GetDocument().Body;

            Table table = new Table();

            TableProperties props = new TableProperties();
            TableStyle tableStyle = new TableStyle { Val = "Light Shading Accent 1" };
            props.TableStyle = tableStyle;
            //props.Append(tableStyle);
            table.AppendChild(props);

            for (var i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c# ms-word docx openxml

0
推荐指数
1
解决办法
2679
查看次数