小编jbl*_*jbl的帖子

反序列化XML数组,其中根是数组,元素不遵循约定

我得到的XML是由外部源提供的,所以我没有能力轻松地重新格式化它.我想在我的实体上使用xml属性,而不必编写知道如何格式化XML和实体的linq查询.这是一个例子:

<?xml version="1.0"?>
<TERMS>
    <TERM>
        <ID>2013-2</ID>
        <DESC>Spring 2013</DESC>
    </TERM>
    <TERM>
        <ID>2013-3</ID>
        <DESC>Summer 2013 Jun&amp;Jul</DESC>
    </TERM>
</TERMS>
Run Code Online (Sandbox Code Playgroud)

我知道XmlSerializer的预计ArrayOfTerm而不是条款的例子,但我能调整我的实体使用不同的元素名称与XML属性,如这样的:

public class TermData
{
    [XmlArray("TERMS")]
    [XmlArrayItem("TERM")]
    public List<Term> terms;
}

public class Term
{
    [XmlElement("ID")]
    public string id;

    [XmlElement("DESC")]
    public string desc;
}
Run Code Online (Sandbox Code Playgroud)

我正在反序列化数据,如下所示:

TermData data;

XmlSerializer serializer = new XmlSerializer(typeof(TermData));
using (StringReader reader = new StringReader(xml))
{
   data = (TermData)serializer.Deserialize(reader);
}

return View(data.terms);
Run Code Online (Sandbox Code Playgroud)

我面临的问题是TERMS是根和数组本身.如果XML的根元素不是数组,我可以像这样编辑我的TermData类,它会正确地反序列化(已经过测试).

[XmlRoot("ROOT")]
public class TermData
{
    [XmlArray("TERMS")]
    [XmlArrayItem("TERM")]
    public List<Term> terms;
}
Run Code Online (Sandbox Code Playgroud)

请注意,使用TERMS作为XMLRoot不起作用.现在,我的代码正在抛出

 InvalidOperationException: There is an error in …
Run Code Online (Sandbox Code Playgroud)

.net c# xml-serialization

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

这个ASP.NET功能在哪里记录?<%=字符串格式,params object [] args%>

显然,可以使用ASP.NET Web表单页面和视图中的<%= %>构造(渲染块)编写格式化输出.

<%= "{0} is {1}", "Foo", 42 %>
Run Code Online (Sandbox Code Playgroud)

这将使"Foo为42".据我所知,ASP.NET解析器转换<%= %>为调用HttpResponse.Write(string).显然在上面的代码中,没有一对一的翻译,因为参数的数量不匹配(假设,在上面的表达式中分隔参数).

现在我已经看到该类TextWriter有一个Write(string, object[])方法.

我检查了解析器的输出,实际上它调用了TextWriter接受params object[]格式化参数的方法:

private void @__Renderform1(System.Web.UI.HtmlTextWriter @__w, System.Web.UI.Control parameterContainer) {
    // ...
    @__w.Write( "{0} is {1}", "Foo", 42 );
Run Code Online (Sandbox Code Playgroud)

这种行为记录在哪里吗?

asp.net compiler-construction parsing response.write server-tags

18
推荐指数
1
解决办法
816
查看次数

多个服务器在 HANGFIRE 中生成错误 500

当我使用 pod 管理的 Kubernetes 架构将应用程序投入生产时,它有可能扩展,所以今天它有两台服务器运行相同的应用程序,hangfire 识别两者但返回错误 500

Unable to refresh the statistics: the server responded with 500 (error). Try reloading the page manually, or wait for automatic reload that will happen in a minute.
Run Code Online (Sandbox Code Playgroud)

但是当我离开只有一台服务器的测试应用程序时,hangfire 正常工作。

挂火配置:

Unable to refresh the statistics: the server responded with 500 (error). Try reloading the page manually, or wait for automatic reload that will happen in a minute.
Run Code Online (Sandbox Code Playgroud)

错误

c# kubernetes hangfire asp.net-core

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

结合使用时,find()和children()之间的jQuery差异:first

在回答以下jQuery问题的过程中需要帮助优化下面的jquery代码,我偶然发现了另一个关于.find()和的问题.children().

问题是,给定四个带有id state,city,branch,branchAddress的选择框,除去每个选择框的第一个选项.

已经发布了几个答案.其中包括:

  1. $('#state,#city,#branch,#branchAddress').children('option:not(:first)').remove();
  2. $('#state,#city,#branch,#branchAddress').children('option:not(:first-child)').remove();
  3. $('#state,#city,#branch,#branchAddress').find('option:not(:first)').remove();

方案1似乎并没有按照工作(删除所有选项,除了第一个选择框的第一个选项),以这个js小提琴(http://jsfiddle.net/QkNRf/1/)

解决方案2和3似乎完美无缺.

如果有人可以指出我错过的内容,或者向我解释为什么解决方案3在解决方案1没有的情况下工作,我会很高兴.

jquery jquery-selectors

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

为什么我们需要 IEnumerable&lt;string&gt; 在 get 方法之前?

我刚开始使用 ASP.Net 学习 Web API。我从 Visual Studio 创建了一个新项目,并试图了解 MVC 文件夹结构和 API 调用。这里我想知道的是为什么我们需要在get方法之前使用 IEnumarable 。

在我的ValuesController.cs,

        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
Run Code Online (Sandbox Code Playgroud)

根据Microsoft 文档,这公开了枚举器,它支持对指定类型的集合进行简单迭代,但想想如果我的数据库中有一个整数,我是否还需要将其转换为字符串?

c# asp.net api

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