小编And*_*ndr的帖子

如何判断代码是为常规.NET还是.NET Core编写的?

我使用的代码库包含常规.NET中的一些代码和.NET Core中的一些代码.当我打开一个单独的.cs文件时,我并不总是确定该文件是否是用常规.NET或.NET Core编译的.显然,两个框架之间存在很多重叠 - 许多代码都可以在两个框架中不加修改地运行.

所以我的问题是,有哪些简单的方法可以确定.cs文件是否打算为常规.NET或.NET Core编译?

(我想,寻找只存在于一个框架或另一个框架中的某些使用可能是最大的标志.如果这确实是确定这一点的方法,是否有一个网页列出了哪些使用是常规.NET vs .NET Core?)

.net c# .net-core

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

处理多个项目时的.NET Core 2.0 appsettings.json文件位置

我正在开发一个由多个项目组成的.NET Core 2.1.103 WebAPI应用程序。每个项目都需要有自己的appsettings.json文件。每个项目都在主“解决方案”文件夹中的自己子目录中。这是目录结构的简化版本,其中包含针对我的问题的相关目录:

c:\code\my_big_solution
c:\code\my_big_solution\project1
c:\code\my_big_solution\project1\bin\Debug
c:\code\my_big_solution\project2
c:\code\my_big_solution\project2\bin\Debug
c:\code\my_big_solution\project3
c:\code\my_big_solution\project3\bin\Debug
Run Code Online (Sandbox Code Playgroud)

我很难弄清楚每个appsettings.json文件必须去哪里以及如何读入它们。我从阅读其他文章中假定,我应该将每个项目的appsettings.json文件自动复制到其关联bin\Debug目录中。如果是这样,我不确定如何使用Startup构造函数。我的理解是,这是.NET Core 2.0从appsettings.json文件读取值的方式:

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
        string myString = Configuration["blah:blah:blah"];
Run Code Online (Sandbox Code Playgroud)

configuration似乎是从而c:\code\my_big_solution不是我要从其提取的c:\code\my_big_solution\project1\bin\Debug任何项目Debug目录中获取其appsettings.json文件。

除了执行.NET Core 1.x的某种方式之外,我无法弄清楚如何从所需的目录中提取内容,这是通过更改构造函数,以便它传入an IHostingEnvironment并使用a ConstructorBuilder

 public Startup(IHostingEnvironment env)
 {
     var builder = new ConfigurationBuilder()
         .SetBasePath(env.ContentRootPath ) // This line is wrong, but the correct path would be set here
         .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
         .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
         .AddEnvironmentVariables();

     Configuration = builder.Build();
     string myString …
Run Code Online (Sandbox Code Playgroud)

.net-core

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

如何在Visual Studio Code中使滚动条更宽?

有没有办法使Visual Studio Code的窗口滚动条更宽?我发现与其他应用相比,它们的像素太瘦了,我的鼠标经常会错过我要点击的确切位置。

visual-studio-code vscode-settings

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

当为自动模拟设置自定义 AutoDataAttribute 时,告诉 AutoFixture 忽略所有递归结构的正确语法是什么?

我让 xUnit/Moq/AutoFixture 成功地协同工作,以便我可以通过测试方法输入参数自动模拟对象。我创建了一个[AutoMoqData]在每次测试中使用的自定义属性。这是该属性的代码:

using System.Linq;
using AutoFixture;
using AutoFixture.AutoMoq;
using AutoFixture.Xunit2;

namespace Shared.TestResources.AutoFixture
{
    public class AutoMoqDataAttribute : AutoDataAttribute
    {
        public AutoMoqDataAttribute() : base(() => new Fixture().Customize(new CompositeCustomization(new AutoMoqCustomization(), new SupportMutableValueTypesCustomization())))
        {
            this.Fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList().ForEach(b => Fixture.Behaviors.Remove(b));
            this.Fixture.Behaviors.Add(new OmitOnRecursionBehavior());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我收到以下编译警告:warning CS0618: 'AutoDataAttribute.Fixture' is obsolete: 'Fixture is created lazily for the performance efficiency, so this property is deprecated as it activates the fixture immediately. If you need to customize the fixture, do that in the factory method …

moq xunit autofixture automocking automoq

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