我尝试在dotnet(C#,framework 3.5 SP1)中跟踪大型XML文件(我不是这些文件的提供者)的加载进度:通过网络文件共享从1 MB到300 MB.
我使用XmlReader进行加载而不是直接使用XmlDocument.Load方法来加速加载过程.
顺便说一下,我在互联网/文档上找不到如何遵循这个加载进度:没有代表/事件似乎存在.有没有办法执行这项任务?具有用于XML保存目的的那种功能可能是一件好事.
谢谢
我的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)
但是,当执行(并显示单元测试中收到的实际值)时,该值在第一个";"之后被截断.
有没有办法保护价值?
有什么解决方案可以以更好/更短的方式重构以下开关/案例代码?
property.Value 是一个 JTokenopportunity 是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)
多年来,我们将环境变量存储在 DevOps 管道中(针对每个环境),并有一个自定义的 Powershell 脚本用于在部署时更新它们。
\n\n\n\n最近在另一个具有类似需求的项目中,我发现该任务\xc3\x80zure App Service Deploy有一个app settings部分,很棒。似乎正是摆脱我们的 powershell 自定义脚本所需要的。
但是我没有找到(任务的官方文档没有提及)如何将管道变量重用到任务中app settings。知道是否可能吗?
我在json中有此对象,我想使用json模式进行验证
"reference": {
"lookup" : "opportunity",
"shortreference": 93671,
"guid": "4bb30c46-20ec-e511-9408-005056862bfb"
}
Run Code Online (Sandbox Code Playgroud)
lookup属性是强制性的,然后至少需要shortreference或guid或两者兼有。
{
"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) c# ×2
.net ×1
azure-devops ×1
azure-pipelines-release-pipeline ×1
json ×1
json.net ×1
jsonschema ×1
schema ×1
xml ×1