我在Visual Studio 2017 RC中创建了一个项目,以检查我是否可以在.NET Framework 4.5项目中使用新的C#7.0语言功能.在我看来,在引用System.ValueTupleNuGet之后,新的元组工作得很好.还有什么我应该考虑的,或者这会起作用吗?
检查System.ValueTupleNuGet依赖项后,看起来不支持.NET Framework 4.0.是这种情况,还是有一些方法可以让新语言在这个运行时工作?
我想写这样的东西:
var d = new ImmutableDictionary<string, int> { { "a", 1 }, { "b", 2 } };
Run Code Online (Sandbox Code Playgroud)
(使用ImmutableDictionary来自System.Collections.Immutable).这似乎是一个简单的用法,因为我预先声明了所有的价值 - 那里没有变异.但这给了我错误:
类型'
System.Collections.Immutable.ImmutableDictionary<TKey,TValue>'没有定义构造函数
我应该如何用静态内容创建一个新的不可变字典?
我按照文章中的说明,在开发签入策略时支持Visual Studio的多个版本.现在,我在哪里可以找到:
Microsoft.TeamFoundation.VersionControl.Client.dll
Run Code Online (Sandbox Code Playgroud)
对于我的VS2015安装下的Team Foundation Server 2015(版本14)?(或者在NuGet?)
没有类似的东西
C:\Program Files (x86)\Microsoft Visual Studio 14\Common7\IDE\PrivateAssemblies\
Run Code Online (Sandbox Code Playgroud) 我开始使用MSTest 2 DataRow属性来检查单个测试中的多个案例:
[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(1, 2, 3)]
public void AdditionWorks(int op1, int op2, int expectedResult)
{
Assert.AreEqual(expectedResult, new Sut().Add(op1, op2));
}
Run Code Online (Sandbox Code Playgroud)
它在NCrunch和CI中都很好用.只是现在我注意到有一个特殊属性DataTestMethod应该标记这样的测试而不是TestMethod.
有区别吗?特别使用一种变体的原因是什么?
Team Foundation Server 2013提供持续集成构建服务.在Visual Studio 2013中进行设置的过程中,我遇到了用于选择要监视的GIT分支的对话框:

如果我想触发所有提交的构建,我该怎么办?
我怎样才能ITypeSymbol从ClassDeclarationSyntaxRoslyn中获得类语义模型()?从这个语法树:
在我看来,我可以使用的唯一一点是ClassDeclaration像令牌一样IdentifierToken无法传递给GetSymbolInfo方法.但是当我写作
context.SemanticModel.GetSymbolInfo(classDeclaration)
Run Code Online (Sandbox Code Playgroud)
结果是
context.SemanticModel.GetSymbolInfo(classDeclaration)
{Microsoft.CodeAnalysis.SymbolInfo}
CandidateReason: None
CandidateSymbols: Length = 0
IsEmpty: true
Symbol: null
_candidateSymbols: Length = 0
Run Code Online (Sandbox Code Playgroud)
......所以没有比赛.我想知道问题是我要求错误的语法元素,或者问题实际上是我在询问我分析类的属性并且类本身尚未准备好的那一刻.
我想在组件注册期间使用工厂方法来集成静态记录器工厂,如下所示:
Component
.For<ILogger>()
.UsingFactoryMethod((kernel, componentModel, creationContext) => LoggingFactory.GetLogger("..."))
.LifestyleTransient(),
Run Code Online (Sandbox Code Playgroud)
GetLogger类需要记录上下文的名称。我想在那里传递请求记录器的类的全名。在这种情况下,这将是明确的,因为ILogger服务的生活方式是短暂的。
我看到有creationContext.RequestedType(包含ILogger),但没有creationContext.RequestingType。