首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ParamArray在XDocument构造函数中的应用问题

ParamArray在XDocument构造函数中的应用问题
EN

Stack Overflow用户
提问于 2019-09-21 16:11:18
回答 2查看 50关注 0票数 0

XDocument有一个重载的构造函数。

代码语言:javascript
复制
XDocument()
XDocument([ParamArray] content: obj[])
XDocument(XDocument)
XDocument(XDeclaration,[ParamArray] content: obj[])

所以当我尝试创建一个XDocument

代码语言:javascript
复制
    new XDocument(
        new XDeclaration("1.0", "utf-8", "no"),
        new XElement(XName.Get "Foo"))

它给了我错误

方法XDocument的唯一过载。

我想它不知道是否要用

代码语言:javascript
复制
XDocument([ParamArray] content: obj[])

代码语言:javascript
复制
XDocument(XDeclaration,[ParamArray] content: obj[])

我怎样才能强迫它选择正确的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-21 16:19:24

啊.我找到了答案

https://nbevans.wordpress.com/2015/04/15/super-skinny-xml-document-generation-with-f/

代码语言:javascript
复制
let XDeclaration version encoding standalone = XDeclaration(version, encoding, standalone)
let XLocalName localName namespaceName = XName.Get(localName, namespaceName)
let XName expandedName = XName.Get(expandedName)
let XDocument xdecl content = XDocument(xdecl, content |> Seq.map (fun v -> v :> obj) |> Seq.toArray)
let XComment (value:string) = XComment(value) :> obj
let XElementNS localName namespaceName content = XElement(XLocalName localName namespaceName, content |> Seq.map (fun v -> v :> obj) |> Seq.toArray) :> obj
let XElement expandedName content = XElement(XName expandedName, content |> Seq.map (fun v -> v :> obj) |> Seq.toArray) :> obj
let XAttributeNS localName namespaceName value = XAttribute(XLocalName localName namespaceName, value) :> obj
let XAttribute expandedName value = XAttribute(XName expandedName, value) :> obj

也就是说,看起来我必须将我的内容显式地转换成一个对象数组,这样它才能选择正确的重载。

票数 1
EN

Stack Overflow用户

发布于 2019-09-23 09:55:33

你可以:

param数组的box (new XElement(XName.Get "Foo"))

  • Make unbox [| new XElement(XName.Get "Foo") |]

数组的

  • Box元素,并将其解压缩为obj []unbox [| new XElement(XName.Get "Foo") |]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58041987

复制
相关文章

相似问题

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