小编cam*_*ous的帖子

按照加载巨大XML文件的进度

我尝试在dotnet(C#,framework 3.5 SP1)中跟踪大型XML文件(我不是这些文件的提供者)的加载进度:通过网络文件共享从1 MB到300 MB.

我使用XmlReader进行加载而不是直接使用XmlDocument.Load方法来加速加载过程.

顺便说一下,我在互联网/文档上找不到如何遵循这个加载进度:没有代表/事件似乎存在.有没有办法执行这项任务?具有用于XML保存目的的那种功能可能是一件好事.

谢谢

.net c# xml

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

覆盖TestRun参数,其值包括Visual Studio Team Services中的半冒号

我的runsettings文件包含很少的连接字符串,我希望能够在VSTS中覆盖这些连接字符串,具体取决于环境.

我不想为每个环境使用特定的runsettings文件,但我想使用环境变量以便在配置我们的其他部署版本时保持一致.

但是,当我想向单元测试转发包含分号(;)的连接字符串(或任何参数)时,我将遇到问题.它被截断了.我测试过没有";"传输其他值 成功.

环境变量

任务配置

settings.runsettings

        <?xml version="1.0" encoding="utf-8"?>
        <RunSettings>
          <TestRunParameters>
           <Parameter name="CRM_CONNECTIONSTRING" value="Url = https://MYCRM.crm4.dynamics.com; Username=login@email.com; Password=mypassword;" />
          <TestRunParameters>        
         </RunSettings>
Run Code Online (Sandbox Code Playgroud)

但是,当执行(并显示单元测试中收到的实际值)时,该值在第一个";"之后被截断.

在此输入图像描述

有没有办法保护价值?

azure-pipelines-release-pipeline

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

如何基于JTokenType简化JToken的铸造

有什么解决方案可以以更好/更短的方式重构以下开关/案例代码?

  • property.Value 是一个 JToken
  • opportunity 是CRM Dynamics实体(类似于字典)

我尝试了以下方法,但未成功(C#不可接受)

Type target = property.Value.Type.GetType();
opportunity[property.Key] = property.Value.Value<target>();
Run Code Online (Sandbox Code Playgroud)

这是我要简化的代码。(JTokenType.Object并且JTokenType.Array以其他方式处理。)

                switch (property.Value.Type)
                {
                    case JTokenType.Boolean:
                        opportunity[property.Key] = property.Value.Value<bool>();
                        break;
                    case JTokenType.Date:
                        opportunity[property.Key] = property.Value.Value<DateTime>();
                        break;
                    case JTokenType.Integer:
                        opportunity[property.Key] = property.Value.Value<int>();
                        break;
                    case JTokenType.String:
                        opportunity[property.Key] = property.Value.Value<string>();
                        break;
                    case JTokenType.Guid:
                        opportunity[property.Key] = property.Value.Value<Guid>();
                        break;
                }
Run Code Online (Sandbox Code Playgroud)

我也尝试过@diiN_的建议:

opportunity[property.Key] = property.Value.Value<dynamic>();
Run Code Online (Sandbox Code Playgroud)

但它抛出InvalidDataContractException: 视觉工作室例外

c# json.net

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

使用 microsoft devops 部署任务设置 Azure 应用服务环境变量

多年来,我们将环境变量存储在 DevOps 管道中(针对每个环境),并有一个自定义的 Powershell 脚本用于在部署时更新它们。

\n\n

在此输入图像描述

\n\n

最近在另一个具有类似需求的项目中,我发现该任务\xc3\x80zure App Service Deploy有一个app settings部分,很棒。似乎正是摆脱我们的 powershell 自定义脚本所需要的。

\n\n

但是我没有找到(任务的官方文档没有提及)如何将管道变量重用到任务中app settings。知道是否可能吗?

\n\n

在此输入图像描述

\n

azure-web-app-service azure-devops

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

具有一个强制属性和至少另一个的json模式未检查

我在json中有此对象,我想使用json模式进行验证

"reference": {
    "lookup" : "opportunity",
    "shortreference": 93671,
    "guid": "4bb30c46-20ec-e511-9408-005056862bfb"
}
Run Code Online (Sandbox Code Playgroud)

lookup属性是强制性的,然后至少需要shortreferenceguid或两者兼有。

{
    "reference": {
      "type": "object",
      "description": "opportunity reference",
      "properties": {
        "lookup": {
          "enum": [
            "employee",
            "opportunity",
            "serviceline",
            "account"
          ]
        }
      },
      "anyOf": [
        {
          "properties": {
            "shortreference": {
              "type": "integer"
            },
            "guid": {
              "type": "string"
            }
          }
        }
      ],
      "required": [
        "lookup"
      ]
    }
  }
Run Code Online (Sandbox Code Playgroud)

编辑 我使用以下架构解决了我的问题

{
    "reference": {
      "type": "object",
      "required": [
        "lookup"
      ],
      "properties": {
        "lookup": {
          "type": "string",
          "enum" …
Run Code Online (Sandbox Code Playgroud)

schema json jsonschema

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