小编Blu*_*les的帖子

等待来自PowerShell的异步C#方法

我想通过使用静态成员访问器从PowerShell调用静态异步C#方法,例如:

电源外壳

function CallMyStaticMethod([parameter(Mandatory=$true)][string]$myParam)
{
    ...
    [MyNamespace.MyClass]::MyStaticMethod($myParam)
    ...
}
Run Code Online (Sandbox Code Playgroud)

C#

public static async Task MyStaticMethod(string myParam)
{
    ...
    await ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

因为我的C#方法是异步的,所以我的C#方法是否可以正常运行而没有来自PowerShell的某种"等待"调用?

c# powershell async-await

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

是否可以在VSTS中触发另一个发布版本?

在VSTS中,是否可以在另一个发行完成时触发发行?我知道发布通常是由构建的完成触发的,但是我想知道是否可以将一个发布与另一个发布一起触发,以便将我的流程组织成多个发布并将它们链接在一起。

谢谢。

release release-management azure-devops

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

显式绑定重定向与自动生成的绑定重定向冲突

构建解决方案时,我收到以下警告:

在“ Microsoft.Azure.Documents.Client,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”上的显式绑定重定向与自动生成的绑定重定向冲突。考虑从应用程序配置文件中将其删除或禁用自动生成的绑定重定向。该构建会将其替换为:“ <bindingRedirect oldVersion =” 0.0.0.0-1.22.0.0“ newVersion =” 1.22.0.0“ xmlns =” urn:schemas-microsoft-com:asm.v1“ />”

但是,我在项目中的app.config文件只有以下内容,没有任何显式的程序集绑定重定向:

<configuration></configuration>

如果我没有任何明确的绑定重定向,为什么会有冲突?我的csproj文件没有任何提及AutoGenerateBindingRedirects的记录。

c# assembly-binding-redirect

5
推荐指数
2
解决办法
1392
查看次数

VS2017自动将项目配置平台设置添加到解决方案.sln文件中

我正在使用 Visual Studio 2017 开发多项目解决方案。每次我执行构建、更改文件、切换分支、同步等操作时,.sln 解决方案文件都会发生变化。当我查看 Diff 以找出不断变化的内容时,我看到以下内容被添加到GlobalSection(ProjectConfigurationPlatforms) = postSolution我的 .sln 部分中:

{(此处为 GUID)}.Debug|x64.ActiveCfg = 调试|任何 CPU
{(此处为 GUID)}.Debug|x64.Build.0 = 调试|任何 CPU
{(此处为 GUID)}.Release|x64.ActiveCfg = 发布|任何 CPU
{(此处为 GUID)}.Release|x64.Build.0 = Release|任何 CPU

guid 指的是我的名为 MyProject 的项目,它是一个 Node.js 单元测试项目。我没有对这个项目进行任何更改,我查看了master分支并确认master没有这些额外的行。

我检查我的构建配置管理器,发现我的所有项目都有Config: Debug和Platform: x64,以及Config: Release和Platform: x64,除了 MyProject,它Platform: Any CPU同时具有调试和发布。但是,当我单击下拉列表将 Any CPU 更改为 x64 时,下拉列表中的唯一项目是 Any CPU。

为什么这种情况不断发生?必须不断单击“撤消更改”并等待 sln 重新加载,这很烦人。

c# visual-studio-2017

5
推荐指数
0
解决办法
830
查看次数

将 CamelCaseText 转换为 Newtonsoft.Json 中的 CamelCaseNamingStrategy

我最近升级到了最新Newtonsoft.Json版本12.0.2。我之前运行的是旧版本 ( 11.0.2),在两者之间的某个位置,该StringEnumConverter.CamelCaseText属性已被弃用。

根据StringEnumConverter 类,"StringEnumConverter.CamelCaseText is obsolete. Set StringEnumConverter.NamingStrategy with CamelCaseNamingStrategy instead."我在以下场景中进行了以下更改CamelCaseText == true:

// Deprecated approach
new StringEnumConverter() { CamelCaseText = true };

// New approach
new StringEnumConverter() { NamingStrategy = new CamelCaseNamingStrategy() };
Run Code Online (Sandbox Code Playgroud)

虽然这看起来很简单,但我不确定如何处理CamelCaseText == false. 我已阅读CamelCaseNamingStrategy 类,但不知道在哪里禁用驼峰命名法。我的猜测是,我需要使用不同的命名策略类,例如CamelCaseNamingStrategy,DefaultNamingStrategy但我不确定此类的行为有何不同。

有人可以向我指出解释差异的文档,和/或帮助我了解在这种情况下使用哪种命名策略吗?

// Deprecated approach
new StringEnumConverter() { CamelCaseText = false };

// New approach
new StringEnumConverter() { NamingStrategy = …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

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

C# - 将枚举值列表转换为字符串列表

假设我有一个enum名为 MyEnum的 C# :

public enum MyEnum
{
    Apple,
    Banana,
    Carrot,
    Donut
}
Run Code Online (Sandbox Code Playgroud)

我有一个List<MyEnum>这样的:

List<MyEnum> myList = new List<MyEnum>();
myList.Add(MyEnum.Apple);
myList.Add(MyEnum.Carrot);
Run Code Online (Sandbox Code Playgroud)

将 my 转换为 a的最简单方法List<MyEnum>是List<string>什么?我是否必须创建一个新的List<string>然后遍历枚举列表,一次一个项目,将每个枚举转换为一个字符串并将其添加到我的 new 中List<string>?

c# enums

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

Scala - 从for循环创建列表

有没有一种简单的方法可以从for循环创建一个列表,在循环的每次迭代中迭代迭代器?

例如,假设我有一个迭代器,每次调用它时都会返回一个随机的double:

val randDoubleIterator = new Iterator[Double] {
    override def hasNext: Boolean = true
    override def next(): Double = {
        Random.nextDouble
    }
}
Run Code Online (Sandbox Code Playgroud)

假设我要创建一个包含10个随机双打的列表.我可以循环遍历迭代器以获得10个随机双打,并将其添加到我的列表(myList)中:

// The following is pseudocode
val myList = new List

for (i <- 0 until 10) {
    myList.add(randDoubleIterator.next())
}
Run Code Online (Sandbox Code Playgroud)

这样做有更简单,更简洁的方法吗?

scala

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