小编Evr*_*glu的帖子

Team Foundation Server:如何删除不受版本控制的本地文件?

我试图在同一解决方案的分支之间执行复杂的合并.我们使用Team Foundation Server,但我更喜欢在WinMerge本地比较文件夹,而不是直接依赖TFS告诉我改变了什么.问题是,有很多文件没有在源代码控制中污染WinMerge文件夹比较:bin,obj,静态代码分析文件,本地创建但丢弃但永不删除的剩余项目......

我可以删除本地文件夹并强制从源代码控制获取以清除它,但是我通过慢速VPN连接到源代码控制,它可能需要一段时间; 或者我也可以手动删除我认为重复的任何文件,但这太经验而不是详尽无遗.

所以这是我的问题:是否有任何tfs命令来清理本地文件夹?

tfs visual-studio-2010

17
推荐指数
2
解决办法
4967
查看次数

如何告知实体框架功能导入存储过程返回的列不可为空?

我有一个SQL Server存储过程,它重新解决这个问题:

CREATE PROCEDURE [jp].[GetFoo]
    @Guid UNIQUEIDENTIFIER
AS

SELECT
    CONVERT(BIT, (CASE WHEN [dbo].[GetBar](T.Col2) = 3 THEN 1 ELSE 0 END)) IsGetBarCol2EqualToThree
FROM 
    [dbo].[MyTable] T
WHERE
    T.Col1 = @Guid
Run Code Online (Sandbox Code Playgroud)

当我在EF中执行函数导入/获取列信息时,IsGetBarCol2EqualToThree列的推断类型是Nullable<bool>.但是这个领域不可能是空的,所以我希望它是公正的bool.有没有办法在更新时保持持久性(即不依赖于修改任何生成的代码)?

SQL Server版本是2005,我使用Visual Studio 2010SP1和EF 4,项目是针对.net 4.0编译的.

c# sql-server entity-framework .net-4.0

16
推荐指数
1
解决办法
4399
查看次数

从 ARN 获取 SQS 队列名称或 URL,或通过 ARN 检查队列是否存在

AWS 文档一致指出,不应根据名称或 URL 以编程方式构建 ARN,因为不能保证这些字符串的构建方式在时间上保持不变。

我的问题是,在 SQS 上,GetQueueAttributes返回的 RedrivePolicy 属性仅引用 ARN 的死信队列。

我目前正在编写一个服务来创建队列并设置它们,或者验证它们的设置是否正确(如果它们已经存在)。但是我看不到验证死信队列 ARN 是否与现有队列匹配的方法,除非我确实解析它以获取名称。有没有办法解决这个问题?

(实际上,公平地说,有一种方法可以遵守“不以编程方式解析 ARN”规则,即调用ListQueues然后循环遍历结果 URL,在每个URL 上调用GetQueueAttributes,但这听起来很愚蠢,并且如果帐户上的队列超过 1000 个,则可能会失败,所以我不这样做)。

目前正在寻找 C# 中的解决方案,但该问题与语言无关。

c# amazon-sqs amazon-web-services

9
推荐指数
1
解决办法
3364
查看次数

实现IEnumerable <T>和IEnumerator <T>时GetEnumerator()的推荐行为

我正在实现我自己的可枚举类型.重新安排的东西:

public class LineReaderEnumerable : IEnumerable<string>, IDisposable
{
    private readonly LineEnumerator enumerator;

    public LineReaderEnumerable(FileStream fileStream)
    {
        enumerator = new LineEnumerator(new StreamReader(fileStream, Encoding.Default));
    }

    public IEnumerator<string> GetEnumerator()
    {
        return enumerator;
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }

    public void Dispose()
    {
       enumerator.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

枚举器类:

public class LineEnumerator : IEnumerator<string>
{
    private readonly StreamReader reader;
    private string current;

    public LineEnumerator(StreamReader reader)
    {
        this.reader = reader;
    }

    public void Dispose()
    {
        reader.Dispose();
    }

    public bool MoveNext()
    {
        if (reader.EndOfStream)
        {
            return false; …
Run Code Online (Sandbox Code Playgroud)

.net c# ienumerable

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

如何通过CodedUI自动化知道光标在WpfEdit字段中的位置?

在CodedUI WpfEdit类有一种方式来获得所选择的文本,但我不能找到一种方法时,没有选择(即在文本中插入符号的指数)来获得光标的位置.在CodedUI框架中有什么可用的吗?

我的目标是在控件包含的文本中声明光标的位置.

c# wpf wpf-controls coded-ui-tests

6
推荐指数
1
解决办法
474
查看次数

Powershell ISE 错误地将 openssl.exe 正常输出解释为错误

我正在尝试在 PowerShell ISE 中调试脚本,但我遇到了一个问题,其中一行的正常输出被 ISE 解释为错误

我已经能够简化这个问题的重现:我在https://www.openssl.org/related/binaries.html获得了任何版本的 openssl (我用 1.0.2d x86 来自链接存储库http:/ /slproweb.com/products/Win32OpenSSL.html )

我打开 Powershell ISE,导航到 exe 所在的位置并运行以下命令:

$ErrorActionPreference = "Stop"
$env:OPENSSL_CONF = ((Resolve-Path "openssl.cfg").Path)
&openssl.exe genrsa
Run Code Online (Sandbox Code Playgroud)

输出是红色的,开始是这样的:

openssl.exe : Loading 'screen' into random state - done
At line:1 char:1
+ &C:\Trayport\OpenSsl\openssl.exe genrsa
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (Loading 'screen...om state - done:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

Generating RSA private key, 2048 bit long modulus
Run Code Online (Sandbox Code Playgroud)

如果我在正常的 PowerShell 命令窗口中运行它,输出相同但为白色,不会被视为错误

Loading 'screen' into random state …
Run Code Online (Sandbox Code Playgroud)

powershell openssl powershell-ise powershell-3.0 powershell-4.0

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

使用 GitHub 包注册表作为 PowerShell 包存储库

据我所知,PowerShell 存储库是 NuGet 存储库...

GitHub 刚刚发布了他们的包注册表,我的公司目前将其用于 npm,但也有一个用于 NuGet 的端点。

我可以使用我的 GitHub 凭据访问 NuGet 端点 ( https://nuget.pkg.github.com/mycompany/index.json ),它返回一个有效的 json:

{
      "version": "3.0.0-beta.1",
      "resources": [
        {
          "@id": "https://nuget.pkg.github.com/mycompany/download",
          "@type": "PackageBaseAddress/3.0.0",
          "comment": "Get package content (.nupkg)."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany/query",
          "@type": "SearchQueryService",
          "comment": "Filter and search for packages by keyword."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany/query",
          "@type": "SearchQueryService/3.0.0-beta",
          "comment": "Filter and search for packages by keyword."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany/query",
          "@type": "SearchQueryService/3.0.0-rc",
          "comment": "Filter and search for packages by keyword."
        }, …
Run Code Online (Sandbox Code Playgroud)

powershell nuget powershell-module github-package-registry

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

asp .net core 中 IHostedService.StartAsync 中的 CancellationToken 有什么意义?

我正在尝试实现托管服务,我想知道我应该在通话中使用 CancellationToken 做什么IHostedService.StartAsync

Microsoft 文档中有很多关于取消令牌本质上StopAsync是超时(默认情况下 5 秒)的内容,这意味着应该在合理的时间范围内正常关闭。

但关于 中的 token StartAsync,信息并不多。如果有的话,文档指定实现不应等待长时间运行的初始化进程,而应仅返回长时间运行的任务。因此,如果我支持取消,我是否应该将取消令牌传递给创建该长时间运行任务的任何内容?如果是的话,取消这个令牌不是一个愚蠢的版本吗StopAsync?为什么框架会这样做?

事实上,在微软自己的抽象BackgroundService中,实现StartAsync实际上完全忽略了该令牌并创建了一个新的令牌,该令牌在调用时被取消StopAsync......

那么我是否认为框架传递的初始令牌的全部意义实际上是通过覆盖虚拟方法来用于阻止 初始化过程(尽管文档建议反对它)BackgroundService.StartAsync?例如

public class MyBackgroundService : BackgroundService
{
    public override Task StartAsync(CancellationToken cancellationToken)
    {
        // Block the thread for initialisation with cancellation (replace Task.Delay by actual initialisation)
        Task.Delay(TimeSpan.FromSeconds(10), cancellationToken).GetAwaiter().GetResult();

        // Start the long running task proper
        return base.StartAsync(cancellationToken);
    }

    protected override Task ExecuteAsync(CancellationToken stoppingToken)
    {
        // some long running …
Run Code Online (Sandbox Code Playgroud)

c# async-await asp.net-core-hosted-services

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

新的 ReSharper Equals() 和 GetHashCode() 代码生成方法

我已经使用了允许代码生成的 ReSharper 功能一段时间了。我一直这样做的方法是在我的班级中按 Alt-Enter(在任何方法之外),或按 Alt-Ins,然后选择Equality members,然后选择所有成员并单击确定。

这样做时会生成的代码是这样的:

   public class Foo
   {
      public int Bar { get; }

      public int Baz { get; }

      protected bool Equals(Foo other)
      {
         return Bar == other.Bar
                && Baz == other.Baz;
      }

      public override bool Equals(object obj)
      {
         if (ReferenceEquals(null, obj)) return false;
         if (ReferenceEquals(this, obj)) return true;
         if (obj.GetType() != this.GetType()) return false;
         return Equals((Foo) obj);
      }

      public override int GetHashCode()
      {
         unchecked
         {
            return (Bar * 397) ^ Baz;
         }
      } …
Run Code Online (Sandbox Code Playgroud)

c# resharper hash gethashcode resharper-2017

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

angular-ui:datepicker似乎在显示按钮时挂起angularjs

我在我的应用程序中有这段html代码(之前定义了ng-app和ng-controller值):

<div>
    <label for="projectSearchDateFrom"><%= Res("Projects.Search.From")%></label>
    <input id="projectSearchDateFrom" type="text" ng-model="startDate" ui-date="dateOptions"/>
    <img ng-show="hasStartDate()" ng-click="clearStartDate()" src="/_Layouts/ClientPortal/Images/layout/TA/delete-small.png" alt="<%= Res("ToolbarDialog.Clear")%> <%= Res("Projects.Search.From")%>" title="<%= Res("ToolbarDialog.Clear")%>" />
</div>
Run Code Online (Sandbox Code Playgroud)

我的AngularJS控制器看起来像这样:

function ProjectSearchCtrl($scope) {
    $scope.startDate = '';

    $scope.hasStartDate = function () {
        return $scope.startDate != '';
    };

    $scope.clearStartDate = function () {
        $scope.startDate = '';
    };

    $scope.dateOptions = {
        dateFormat: "yy-mm-dd",
        showOn: "focus"
    };
}
Run Code Online (Sandbox Code Playgroud)

这很完美:由于AngularUI,AngularJS绑定工作正确地设置了一个datepicker ...

但是如果我将showOn值更改为"button"或"both"(实际显示datepicker按钮的两个可能选项),输入后的所有内容(包含ui-date属性)将停止工作:ng-show,ng- click ...控制器甚至没有被调用.

版本(全部是最新的):

  • jQuery 1.7.2
  • angularJS 1.0.0
  • angularUI 0.1.0
  • Chrome 20

javascript jquery jquery-ui angularjs

0
推荐指数
1
解决办法
4185
查看次数

有没有办法以编程方式从SQL Server上的CREATE/ALTER DATABASE等C#语句调用而不会产生安全问题?

我有一个.NET应用程序,它使用SqlCommand运行以下语句:

DECLARE @SQL VARCHAR(100)
SELECT @SQL = 'CREATE DATABASE ' + @DB
EXEC(@SQL)
Run Code Online (Sandbox Code Playgroud)

@DB参数来自用户输入,因此很明显应用程序容易受到"X DROP DATABASE Y"之类的攻击.我敢肯定一定有一种我想念的明显方式......

编辑:使用参数化语句无法工作,因为您无法在CREATE DATABASE中使用参数(CREATE DATABASE @DB返回语法错误).

c# sql-injection

-1
推荐指数
1
解决办法
275
查看次数