小编Col*_*kay的帖子

在XML中反序列化为没有容器元素的List

在我看到的所有示例中,XmlSerializer无论何时使用列表或数组,您都会遇到某种类似容器的元素:

<MyXml>
  <Things>
    <Thing>One</Thing>  
    <Thing>Two</Thing>  
    <Thing>Three</Thing>  
  </Things>
</MyXml>
Run Code Online (Sandbox Code Playgroud)

但是,我所拥有的XML没有类似上面的东西的容器.它只是开始重复元素.(顺便提一下,XML实际上来自Google的Geocode API)

所以,我有这样的XML:

<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
  <status>OK</status>
  <result>
    <type>locality</type>
    <type>political</type>
    <formatted_address>Glasgow, City of Glasgow, UK</formatted_address>
    <address_component>
      <long_name>Glasgow</long_name>
      <short_name>Glasgow</short_name>
      <type>locality</type>
      <type>political</type>
    </address_component>
    <address_component>
      <long_name>East Dunbartonshire</long_name>
      <short_name>East Dunbartonshire</short_name>
      <type>administrative_area_level_3</type>
      <type>political</type>
    </address_component>
    <!-- etc... -->
  </result>
  <result>
    <!-- etc... -->
  </result>
  <result>
    <!-- etc... -->
  </result>
</GeocodeResponse>
Run Code Online (Sandbox Code Playgroud)

正如你可以看到里面的结果,类型元素重复没有XmlSerializer所期望的任何类型元素(或至少我见过的所有文档和示例)._address_component_也是如此.

我目前的代码看起来像这样:

[XmlRoot("GeocodeResponse")]
public class GeocodeResponse
{
    public GeocodeResponse()
    {
        this.Results = new List<Result>();
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# xml-serialization

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

Node.js服务器有多个并发请求,它是如何工作的?

我知道node.js是一个单线程,异步,非阻塞的i/o.我已经阅读了很多相关内容.例如,PHP每个请求使用一个线程,但节点只使用一个线程,就像那样.

假设在node.js服务器上有三个请求a,b,c同时到达.其中三个请求需要大量阻塞操作,例如,他们都想读取相同的大文件.

那么请求如何排队,执行阻塞操作的顺序以及调度响应的顺序是什么?当然使用了多少线程?

请告诉我三个请求的请求到响应的顺序.

nonblocking single-threaded node.js

17
推荐指数
1
解决办法
6977
查看次数

设置Kendo UI Grid的默认过滤器

我有一个用javaScript渲染的Kendo UI网格.我希望字符串列有一个选项("包含")而没有第二个过滤器.到目前为止,这么好,我写道

        $("#MyGrid").kendoGrid({
            // other bits of configuration here
            filterable: {
                extra:false, 
                operators: {
                    string:{ contains: "Contains"}
                }
            },
            // more bits of configuration here
        });
Run Code Online (Sandbox Code Playgroud)

作为网格定义的一部分.结果看起来很好(我只有一个选项,所以下拉是多余的).

按照我的定义过滤

但是,无论如何,过滤器仍然执行equals操作而不是contains操作(这是唯一可用的操作).

我花了一段时间试图解决这个问题,并且我一直在圈子里走,因为我发现的代码要么不起作用,要么没有意义,或者两者兼而有之.

任何人都可以告诉我如何将过滤器默认为"包含"而不是"等于"?

javascript kendo-ui kendo-grid

9
推荐指数
4
解决办法
3万
查看次数

DateTime.ParseExact FormatException字符串未被识别为有效的DateTime

我完全被这个困扰了.据我所知,文件和其他帖子我已经读过,说这应该有效.我一定是想念一些傻事,但我看不出来.

我得到一个FormatException,消息"字符串未被识别为有效的DateTime".在以下代码行:

return DateTime.ParseExact(value, DateFormat, null,
                           DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
Run Code Online (Sandbox Code Playgroud)
  • value"11/04/2013"
  • DateFormat"dd/MM/yyyy"
  • 目前的文化是 en-GB
  • 我尝试了各种变体,DateTimeStyles但没有效果.

我原来的意图是格式,ddd, dd/MMM/yyyy但也没有用(该实例中的值是Tue, 30/Apr/2013)

我也尝试通过传入new CultureInfo("en-GB")而不是传递来强制文化到en-GBnull

我还将代码解压缩到自己的控制台应用程序中,以查看环境是否存在差异(ASP.NET MVC 3)

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var DateFormat = "dd/MM/yyyy";
            var value = "30/04/2013";
            var culture = new CultureInfo("en-GB");
            var result = DateTime.ParseExact(value, DateFormat, culture,
                           DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
            Console.WriteLine("\"{0}\" as …
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0

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

在Azure DevOps发布管道中使用Az模块

我想在Azure DevOps发布管道中使用Azure PowerShell模块(又名Az模块)。但是,现有的PowerShell选项似乎无效。我已经尝试了各种方法,但是安装新的Az模块只会带来很多错误,包括Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook.

常规的PowerShell任务没有内置的任何Azure模块。AzurePowerShell任务使用已淘汰的Azure RM PowerShell模块(即,它仍受支持,但不会添加任何新功能)。

上面的错误很可能是由于Azure PowerShell任务启动时在运行我的脚本之前执行以下操作引起的:

2019-01-13T13:34:14.5416432Z ==============================================================================
2019-01-13T13:34:14.5416555Z Task         : Azure PowerShell
2019-01-13T13:34:14.5416623Z Description  : Run a PowerShell script within an Azure environment
2019-01-13T13:34:14.5416705Z Version      : 3.1.18
2019-01-13T13:34:14.5416762Z Author       : Microsoft Corporation
2019-01-13T13:34:14.5416831Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613749)
2019-01-13T13:34:14.5416969Z ==============================================================================
2019-01-13T13:34:20.3546127Z ##[command]Import-Module -Name C:\Modules\AzureRm_6.7.0\AzureRM\6.7.0\AzureRM.psd1 -Global
2019-01-13T13:34:58.4365259Z ##[command]Clear-AzureRmContext -Scope Process
2019-01-13T13:34:59.2732327Z ##[command]Disable-AzureRmContextAutosave -ErrorAction SilentlyContinue
2019-01-13T13:35:00.1691359Z ##[command]Add-AzureRMAccount …
Run Code Online (Sandbox Code Playgroud)

azure-powershell azure-devops

7
推荐指数
2
解决办法
4356
查看次数

如何在运行时设置log4j转换模式

我有一个Java应用程序,同时解析电子表格中的输入.我添加了从ant任务中独立运行解析器部分的功能.但是我正在使用的正常log4j模式会使输出难以读取,我想在运行时设置一个简单的模式.

所以像 log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n

        parseDebug = new Boolean(System.getProperty("ptpunit.parseDebug")).booleanValue();

        if(parseDebug){

            // SET CONVERSION PATTERN HERE

            log.setLevel((Level) Level.DEBUG);

        }
Run Code Online (Sandbox Code Playgroud)

java log4j

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

NVelocity没有找到模板

我在ASP.NET MVC应用程序中使用NVelocity时遇到了一些困难.我正在使用它作为生成电子邮件的方式.

据我所知,我传递的细节都是正确的,但无法加载模板.

这是代码:

private const string defaultTemplatePath = "Views\\EmailTemplates\\";
Run Code Online (Sandbox Code Playgroud)

...

velocityEngine = new VelocityEngine();
basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, defaultTemplatePath);
ExtendedProperties properties = new ExtendedProperties();
properties.Add(RuntimeConstants.RESOURCE_LOADER, "file");
properties.Add(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, basePath);
velocityEngine.Init(properties);
Run Code Online (Sandbox Code Playgroud)

basePath是正确的目录,我已将值粘贴到资源管理器中以确保它是正确的.

if (!velocityEngine.TemplateExists(name))
    throw new InvalidOperationException(string.Format("Could not find a template named '{0}'", name));


Template result = velocityEngine.GetTemplate(name);
Run Code Online (Sandbox Code Playgroud)

上面的'name'是上面定义为basePath的文件夹中的有效文件名.但是,TemplateExists返回false.如果我注释掉条件输出并让它在GetTemplate方法调用上失败,那么堆栈跟踪如下所示:

   at NVelocity.Runtime.Resource.ResourceManagerImpl.LoadResource(String resourceName, ResourceType resourceType, String encoding)
   at NVelocity.Runtime.Resource.ResourceManagerImpl.GetResource(String resourceName, ResourceType resourceType, String encoding)
   at NVelocity.Runtime.RuntimeInstance.GetTemplate(String name, String encoding)
   at NVelocity.Runtime.RuntimeInstance.GetTemplate(String name)
   at NVelocity.App.VelocityEngine.GetTemplate(String name)
...
Run Code Online (Sandbox Code Playgroud)

我现在陷入了一些僵局.我觉得答案很明显,但我现在似乎无法看到它.

asp.net nvelocity

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

Cake启用并行MSBuild

在一个蛋糕文件中,如何在MsBuild操作上"启用并行构建".我得到消息输出到终端"请添加"/ m"开关",但我没有看到如何在我传递给MsBuild方法的MS Build Settings中这样做.

cakebuild

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

Razor MVC3保持全局变量集返回视图

我有一个全局字符串变量,我在一个操作后设置(按下提交按钮),然后我想在我按下另一个按钮时访问相同的字符串,目前我正在做类似的事情

GlobalVariable = "blah";
return View();
Run Code Online (Sandbox Code Playgroud)

再次访问此操作的最佳做​​法是什么?我想指出它是同一页面(index.cshtml)

谢谢!

c# asp.net-mvc

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

用户在mvc上单击它时禁用提交按钮

我想在用户点击它时禁用按钮.我能做到,但我认为我的方式并不好.我的方式:

我设置ViewBag.IsSaveButtonDisabledtrue和检查由JavaScript这个div容器然后我禁用了保存按钮.我知道,这是一个糟糕的解决方案.我想在服务器端控制提交按钮的禁用属性.

它的最佳实践是什么?

model-view-controller asp.net-mvc

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