小编Ren*_*ogt的帖子

在Python中将多维列表转换为1D列表

像这样的多维列表l=[[1,2],[3,4]]可以通过执行转换为1D 列表sum(l,[]).任何人都可以解释一下这是怎么回事?

响应者说,这种技术只能用于"压扁"2D列表 - 它不适用于更高的多维列表.但如果重复,它确实如此.例如,如果A是3D列表,则sum(sum(A),[]),[])将A压缩为1D列表.

python

30
推荐指数
2
解决办法
6万
查看次数

没有为元素'context:annotation-config'找到声明

在春天,每当我<context:annotation-config/>在spring.xml中写道时,我都会收到此错误: -

线程"main"中的异常org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源[spring.xml]的XML文档中的第81行无效; 嵌套异常是org.xml.sax.SAXParseException; lineNumber:81; columnNumber:30; cvc-complex-type.2.4.c:匹配的通配符是strict,但是没有为元素'context:annotation-config'找到声明.

我的spring.xml的内容是

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"
xmlns:context="http://www.springframework.org/schema/context"
>

<bean id="circle" class="com.mysite.Circle">
</bean>

 ...

<context:annotation-config/>
Run Code Online (Sandbox Code Playgroud)

有谁请告诉我我哪里错了????

xml spring spring-mvc

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

从扩展程序在Visual Studio Designer中的windows.forms.controls上绘制装饰

我编写了一个观察Windows.Forms设计器窗口的Visual Studio 2013扩展.当开发人员在设计器窗口中更改控件时,扩展会尝试验证结果是否与我们的ui样式指南一致.如果发现可能的违规,它们将列在工具窗口中.一切正常.但是现在我想在设计器窗口中标记不一致的控件,例如使用红框或类似的东西.

不幸的是,我没有找到在设计器窗口中绘制控件装饰的方法.我知道如果你开发自己的装饰品,你可以画出那些装饰品ControlDesigner,但我需要从控制设计师的"外部"开始.我只有IDesignerHost来自Dte2.ActiveWindow并且可以通过该主机访问Controls和ControlDesigners.我找不到任何方法来从ControlDesigners的"外部"添加装饰品.我现在的解决方法是捕获控件的Paint-Events并尝试从那里绘制我的装饰品.这对于所有控件(即ComboBox等)都不适用,因为并非所有控件都允许您使用它们.所以我不得不使用他们的父控件的Paint事件.此解决方案还有其他缺点.

我希望有人可以告诉我是否有更好的方法.我敢肯定,必须有一个:如果您使用菜单 - >查看 - > Tab键顺序(不知道正确的英文菜单标题,我使用的是德国IDE),您可以看到IDE本身能够装饰控件(没有截图,因为它是我在SO上的第一篇文章),我确信它不会像我一样使用解决方法.它是如何做到的?

我几周来一直在谷歌上搜索.感谢您的帮助,建议,研究起点......

更新:

也许这个截图有点清晰:

截图选项卡顺序

从View菜单中选择Tab顺序时,Visual Studio显示的是蓝色编号的插入符号.我的问题是如何通过IDE完成这项工作.

如上所述,我试图Paint在控件的情况下执行此操作,但例如ComboBox实际上不支持该事件.如果我使用父项的Paint事件,我只能在子控件周围绘制,因为它们是在父项之后绘制的.

我还想过在控件或ControlDesigners 上使用反射,但我不确定如何挂钩受保护的OnPaintAdornments方法.我不认为IDE开发人员使用那些"肮脏"的技巧.

c# wpf windows-forms-designer visual-studio vsix

18
推荐指数
2
解决办法
1220
查看次数

Visual Studio 2017中的自定义TFS签入策略

不久之前,我开发了一个自定义的TFS签到策略,该策略在Visual Studio 2015中运行良好.现在我安装了Visual Studio 2017,并希望以与之前使用VS2015相同的方式注册签入策略程序集.但这不起作用.如何在VS2017中注册自定义签到策略程序集?

对于VS2015,我有这些注册表项:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
Run Code Online (Sandbox Code Playgroud)

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
Run Code Online (Sandbox Code Playgroud)

因此我为VS2017(15.0)添加了这些键:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\15.0\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\15.0_Config\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这不起作用:

  • 如果我打开Team Project SourceControl设置,请转到"签入策略"选项卡并尝试Add...策略,MyCheckInPolicy 不会出现1
  • 如果我打开已使用此签入策略的团队项目并执行上述操作,则会收到一条错误消息,告诉我assembly(mycheckinpolicy)"尚未注册".

当然,我在注册表更改后重新启动了IDE,但即使重新启动我的机器也无济于事.

到目前为止我发现的信息似乎表明,登记政策现在必须是扩展(vsix)的一部分,我不想相信.


我想这个问题来自一些在程序集加载到IDE时无法解析的引用.

MyCheckInPolicy项目引用Microsoft.TeamFoundation.VersionControl.Client.dllVS2015文件夹中的v14.0 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer.
我试图从VS2017文件夹中引用相应的dll,但随后程序集在两个 IDE 中不起作用.

我也尝试使用Nuget包"Microsoft.TeamFoundation.VersionControl.All"v12.0.30723.2,并将输出目录中的所有文件(似乎包含包的所有程序集)部署到注册表项中提到的位置.这具有相同的结果:无法在VS2015和VS2017中加载策略.

我们正在使用TFS 12.0.30723.0.


1所以看起来VS2017甚至没有尝试加载程序集而不关心注册表项?

c# tfs visual-studio visual-studio-2017

15
推荐指数
1
解决办法
3466
查看次数

为什么没有类似Monitor.EnterAsync的方法

我在新框架中看到许多方法,它们async/await在C#中使用新的异步模式/语言支持.为什么没有Monitor.EnterAsync()或其他async lock机制可以尽快释放当前线程并返回lock

我认为这是不可能的 - 问题是为什么?

c#

10
推荐指数
4
解决办法
2375
查看次数

“带有代码修复的分析器”项目模板已损坏

简短问题:如何在 Visual Studio 2019 v16.6.2 中使用工作单元测试项目设置 roslyn 代码分析器项目?

几个月前(以及一些 Visual Studio 更新),我尝试使用“Analyzer with Code Fix (.NET Standard)”项目模板设置代码分析器项目。它运行良好,并且正如所有可用的操作方法中所记录的那样。

今天(VS2019 v16.6.2)我想开始一个真正的分析器项目,但不幸的是更新的模板似乎已损坏或发布,还有很多未完成的工作正在进行中。(一个小问题是包管理器突然似乎无法恢复包,因为它不喜欢使用与分析器项目相同的程序集名称的 vsix 项目。)

该模板包含一个单元测试项目。在我试验的早期版本中,这个测试项目包含大量代码,这些代码充当测试基础设施,使开发人员可以轻松地针对真实代码测试分析器。

所有这些代码现在似乎都集成在许多特定于语言的 nuget 包中。但是这些包

这些是显然需要的包引用(省略测试框架包):

  • Microsoft.CodeAnalysis.CSharp.Analyzer.Testing.MSTest v1.0.1-beta1.20384.1
  • Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.MSTest v1.0.1-beta1.20384.1
  • Microsoft.CodeAnalysis.CSharp.CodeRefactoring.Testing.MSTest v1.0.1-beta1.20384.1

这是示例单元测试代码:

using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;

using Verify = Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.MSTest.CodeFixVerifier<
    Analyzer1.Analyzer1Analyzer,
    Analyzer1.Analyzer1CodeFixProvider>;

namespace Analyzer1.Test
{
    [TestClass]
    public class UnitTest
    {
        //No diagnostics expected to show up
        [TestMethod]
        public async Task TestMethod1()
        {
            var test = …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing roslyn-code-analysis visual-studio-2019

10
推荐指数
2
解决办法
1163
查看次数

关于冒泡排序与合并排序

这是我最近在互联网上发现的面试问题:

如果要实现一个以整数数组作为输入并返回最大值的函数,您会使用冒泡排序或合并排序来实现此功能吗?如果阵列大小小于1000怎么办?如果大于1000怎么办?

这就是我的想法:

首先,使用排序来实现上述功能真的很奇怪.你可以通过一次数组找到最大的数组.其次,如果必须在两者之间做出选择,那么冒泡排序更好 - 你不必实现整个冒泡排序程序,而只需要进行第一次传递.它比时间和空间上的合并排序更好.

我的答案有什么错误吗?我错过了什么吗?

sorting algorithm

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

'stream.ReadTimeout'抛出了'System.InvalidOperationException'类型的异常,将照片发送到电报机器人

我写了下面的代码,用于向我的机器人发送照片,但在我的信息流中,我有两个例外的读写,我的照片没有发送.

我想也许原因是这个错误,但我无法解决它:

stream.ReadTimeout 抛出了'System.InvalidOperationException'类型的异常

using (var stream = System.IO.File.Open("a.jpg", FileMode.Open))
{
    var fileToSend = new FileToSend("a.jpg", stream);
    Task.Run(() => bot.SendPhotoAsync(u.Message.Chat.Id, fileToSend).ConfigureAwait(false));
}
Run Code Online (Sandbox Code Playgroud)

c# bots telegram telegram-bot

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

无法在 Visual Studio 2019 中搜索 NuGet 包

无法在 Visual Studio 2019 中搜索在线 NuGet 包。默认包源处于离线状态,并且没有添加在线包源的选项。通过互联网搜索。无法找到解决方案。请检查下面的图像。

截屏

c# visual-studio-2019

8
推荐指数
2
解决办法
7332
查看次数

为什么函数调用需要这么多时间?

我有以下插入排序算法实现:

private static void InsertionSort(List<int> array)
{
    for (int i = 1; i < array.Count; ++i)
    {
        for (int j = i; j > 0 && array[j - 1] > array[j]; --j)
        {
             //swap(array, j, j-1);

             int temp = array[j];
             array[j] = array[j-1];
             array[j-1] = temp;
        }
     }
}

private static void swap(List<int> array, int i, int j)
{
    int temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的算法时,swap(array, j, j-1);它需要花费更多的时间(50000个元素+2秒),而不是我的函数体内联.

为什么?

c# algorithm performance

7
推荐指数
1
解决办法
1622
查看次数