小编Rob*_*uch的帖子

保存XDocument时会发生什么异常?

在我的C#应用​​程序中,我使用以下语句:

public void Write(XDocument outputXml, string outputFilename) {
  outputXml.Save(outputFilename);
}
Run Code Online (Sandbox Code Playgroud)

如何找出Save方法可能抛出的异常?最好是在Visual Studio 2012中,或者在MSDN文档中.

XDocument.Save没有给出任何引用.它适用于其他方法,例如File.IO.Open.

c# exception-handling linq-to-xml

5
推荐指数
1
解决办法
2204
查看次数

XDocument.Validate总是成功的

我有一个模式文件,它没有定义任何目标命名空间,即它的定义如下所示:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <!--Elements, attributes, etc. -->
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

相应的XML如下所示:

<Documents p1:CRC="0" p1:Date="1900-01-01T01:01:01+01:00" p1:Name="Test" p1:Status="new" xmlns:p1="http://www.tempuri.org/pdms.xsd" xmlns="http://www.tempuri.org/pdms.xsd">
  <p1:Document p1:Date="2010-12-23T07:59:45" p1:ErrorCode="0" p1:ErrorMessage="" p1:Number="TEST00001" p1:Status="new"/>
</Documents>
Run Code Online (Sandbox Code Playgroud)

使用例如Altova XMLSpy或Oxygen XML Editor对架构验证此XML失败.

但是,我在C#(.NET 4.0)中的验证不会失败.XML作为XDocument对象处理.如果我已经正确理解,那么XDocument.Validate()如果在模式中找不到命名空间,则执行松散验证.因此验证不会失败.但是,我该如何实施"严格"验证XDocument呢?

这就是我尝试验证XML的方法:

public static void ValidateXml(XDocument xml, string xsdFilename) {
  XmlReaderSettings settings = new XmlReaderSettings();
  XmlSchemaSet schemaSet = new XmlSchemaSet();

  schemaSet.Add(string.empty, xsdFilename);
  settings.ValidationType = ValidationType.Schema;
  settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
  settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);

  xml.Validate(schemaSet, ValidationCallback);
}

private static void ValidationCallback(object sender, ValidationEventArgs args) {
  if (args.Severity …
Run Code Online (Sandbox Code Playgroud)

c# linq-to-xml

5
推荐指数
1
解决办法
8460
查看次数

使用XmlSerializer序列化List <>

我已经定义了以下类.

Document.cs

public class Document {
  // ...
  [XmlAttribute]
  public string Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

DocumentOrder.cs

public class DocumentOrder {
  // ...
  [XmlAttribute]
  public string Name { get; set; }
  public List<Document> Documents { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

将此序列化为XML时,我得到:

<DocumentOrder Name="myname">
  <Documents>
    <Document Status="new"/>
    // ...
  </Documents>
</DocumentOrder>
Run Code Online (Sandbox Code Playgroud)

但是我想这样做,即Document成为孩子们的元素DocumentOrder.

<DocumentOrder Name="myname">
  <Document Status="new"/>
  <Document Status="new"/>
  <Document Status="new"/>
  // The document element has other attributes to distinguish...
</DocumentOrder>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

c# xml-serialization

5
推荐指数
1
解决办法
95
查看次数

使用 Python 持续更改环境变量

是否可以使用 Python 3.5 在 Windows 和 Linux 中创建和更新环境变量以使其持久化?

目前我使用这个:

import os
os.environ["MY_VARIABLE"] = "TRUE"
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不会持久地“存储”环境变量。

python python-3.x

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

在Go中添加默认的HTTP标头

我正在Go中迈出第一步,并且想使用REST API。服务器要求使用承载令牌来授权每个请求。

如何将此标头添加到客户端,以便每个请求都使用此令牌?

import "net/http"

const accessToken = "MY_DEMO_TOKEN"

func main() {
    customHeader := http.Header{}
    customHeader.Add("Authorization: Bearer %s", accessToken)
    client := &http.Client{
        Timeout: time.Second*10,
    }
}
Run Code Online (Sandbox Code Playgroud)

authorization http go

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

按引用字段对列表进行排序react-admin

我开始使用react-admin并且基本上工作正常。但是我在使用ReferenceField.

我调用的 REST API 返回以下 JSON 数据:

/语言

{
  "language": [
    {
      "id": 0,
      "name": "Language #0"
    },
    {
      "id": 1,
      "name": "Language #1"
    },
    {
      "id": 2,
      "name": "Language #2"
    },
    {
      "id": 3,
      "name": "Language #3"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

/我的参考文献

{
  "myreferences": [
    {
      "id": 0,
      "langauge": {
        "id": 0,
        "name": "Language #0"
      },
      "name": "My reference #0"
    },
    {
      "id": 1,
      "langauge": {
        "id": 1,
        "name": "Language #1"
      },
      "name": "My reference #1" …
Run Code Online (Sandbox Code Playgroud)

react-admin

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

定期删除 GitLab 中的合并分支?

我搜索了一些文档,但找不到我想要的内容。

GitLab 是否提供允许删除最近合并的所有分支的功能?作为 GitLab 本身的功能还是使用第三方插件或类似功能?

gitlab

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

使用 Cypress 访问 VueJS 中的数据模型(应用程序操作)

我最近看到了这篇博文:停止使用页面对象并开始使用应用程序操作。它描述了一种方法,应用程序公开其模型,以便赛普拉斯可以访问它以设置某些状态以进行测试。

来自链接的示例代码:

// app.jsx code
var model = new app.TodoModel('react-todos');

if (window.Cypress) {
  window.model = model
}
Run Code Online (Sandbox Code Playgroud)

我想在我的 VueJS 应用程序中尝试这种方法,但我正在努力解决如何公开“模型”。

我知道可以按照此处所述公开 Vuex 商店将 vuex 商店公开给赛普拉斯,但我需要访问组件的data().

那么,我如何公开例如HelloWorld.data.message可以从 Cypress 访问?

Codesandbox.io 上的演示应用程序

可以通过选项/数据 API吗?

vue.js cypress

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

从 docker-compose 开始排除服务

使用案例

docker-compose.yml定义了代表完整应用程序堆栈的多个服务。在开发模式下,我们希望动态排除某些服务,以便我们可以从 IDE 运行它们。

从 Docker compose 1.28 开始,可以将配置文件分配给此处记录的服务,但据我所知,它只允许指定应启动哪些服务,而不是应排除哪些服务。

我可以想象的另一种方法是将“排他性”服务分成自己的docker-compose.yml文件,但所有这些对我来说似乎有点乏味。

您有更好的方法来排除服务吗?

docker-compose

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

运行 findFirst() 后恢复 Java Stream 的处理

给定一个简单的字符串列表:

List<String> strings = Arrays.asList("Mary", "James", "Jim", "Camilla");
Run Code Online (Sandbox Code Playgroud)

我想用一种anotherMethod()方法处理列表中的每个项目,但是第一个项目应由 额外处理someMethod()

我尝试过这样的事情:

List<String> strings = Arrays.asList("Mary", "James", "Jim", "Camilla");

var result = strings.stream()
     .findFirst()
     .map(myString -> someMethod(myString))
     // "resume" stream
     .map(myString -> anotherMethod(myString))
     .toList();     
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 aStream或类似的东西来处理这种情况?


更新1

这是一个例子,可以帮助您更好地理解我的问题背后的动机。

List<String> strings = Arrays.asList("Mary", "James", "Jim", "Camilla");

public String someMethod(String s) {
  return s.toUpperCase();
}

public String anotherMethod(String s) {
  return s.toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)

最终结果为a List<String>,其中包含以下元素,即仅将第一个元素转换为大写,其他元素全部转换为小写。

"MARY", "james", "jim", "camilla"

java findfirst java-stream option-type

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