小编Las*_*tio的帖子

当依赖关系是循环的时,如何在Startup.cs中实现依赖注入?

我有一个MyProject项目,我有实现的IMyService接口和MyServiceIMyService.在Startup.cs类中,我依赖注入它们:

// MyProject project | Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped<IMyService, MyService>();
}
Run Code Online (Sandbox Code Playgroud)

因为MyService有许多依赖项(对第三方等进行许多REST调用)我想为开发环境创建它的存根版本.我创建了引用MyProject的MyStubsProject.我实现了对MyStubsProject的存根版本:IMyService

// MyStubsProject project
public class MyStubService : IMyService
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

所以现在我想向Startup.cs类添加依赖注入:

// MyProject project | Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    if (isDevelopmentEnvironment)
        services.AddScoped<IMyService, MyStubService>();
    else
        services.AddScoped<IMyService, MyService>();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加它,MyProjectMyStubsProject之间将存在循环依赖.

我应该如何在Startup.cs中实现对类MyStubServiceMyStubsProject项目的引用?

c# dependency-injection circular-dependency .net-core

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

我应该在更新期间停止Azure Web App吗?

我正在从Azure DevOps更新我的Azure Web应用程序.目前,我的发布是这样的:

  1. 停止Web App,
  2. 更新Web应用程序和
  3. 启动我们的应用程序.

我的问题是在更新期间停止Web App是否合理?当我从Azure DevOps for Azure Web App中选择发布模板时,没有任何停止/启动步骤,只有更新步骤.所以我想是即使需要停止/启动.

azure azure-web-sites azure-devops

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

如何删除Azure DevOps中的合并功能分支?

我们过去常常自动删除拉取请求中的功能分支。但随后我们需要将分支策略添加到功能分支,而 Azure DevOps 表示“无法删除具有策略的分支”。有没有办法在远程存储库(即Azure存储库)中删除所有合并的功能分支?(除了从 UI 中一一删除)

无法删除具有策略的分支

git azure-devops azure-repos

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

Approval-Test抛出System.MissingMethodException

我正在尝试使用Approval-Tests但是甚至无法运行"Hello World".当我运行测试时,我得到了

Test Name:  TestHelloWorld
Test FullName:  HelloApprovalTests.Class1.TestHelloWorld
Test Source:    C:\Users\Lassi\Documents\Visual Studio 2015\Projects\HelloApprovalTests\HelloApprovalTests\Class1.cs : line 14
Test Outcome:   Failed
Test Duration:  0:00:00.01

Result StackTrace:  
at ApprovalTests.Namers.UnitTestFrameworkNamer..ctor()
   at ApprovalTests.Approvals.<.cctor>b__c()
   at ApprovalTests.Approvals.GetDefaultNamer()
   at ApprovalTests.Approvals.Verify(IApprovalWriter writer)
   at ApprovalTests.Approvals.Verify(String text)
   at HelloApprovalTests.Class1.TestHelloWorld() in C:\Users\Lassi\Documents\Visual Studio 2015\Projects\HelloApprovalTests\HelloApprovalTests\Class1.cs:line 15
Result Message: System.MissingMethodException : Method not found: 'System.Diagnostics.StackTrace ApprovalUtilities.CallStack.Caller.get_StackTrace()'.
Run Code Online (Sandbox Code Playgroud)

我的班级是:

using ApprovalTests;
using ApprovalTests.Reporters;
using NUnit.Framework;

namespace HelloApprovalTests
{
    [TestFixture]
    [UseReporter(typeof(DiffReporter))]
    public class Class1
    {
        [Test]
        public void TestHelloWorld()
        {
            Approvals.Verify("Hello World Welcome to ApprovalTests");
        }
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing approval-tests

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

PetaPoco 的 Query(string query,parameters) 方法是否可以防止 SQL 注入?

PetaPoco 的主页中提到 PetaPoco 的 SQL Builder(Sql 对象)可以防止 SQL 注入。但是 Query(string query,parameters) 方法可以防止 SQL 注入吗?

SQL 生成器是安全的:

var id = 123;
var a = db.Query<article>(PetaPoco.Sql.Builder
  .Append("SELECT * FROM articles")
  .Append("WHERE article_id=@0", id)
);
Run Code Online (Sandbox Code Playgroud)

但是像这样传递参数的字符串查询安全吗?

var id = 123;
var a = db.Query<article>("SELECT * FROM articles WHERE article_id=@0", id);
Run Code Online (Sandbox Code Playgroud)

.net c# sql-injection petapoco

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

ReSharper inspectcode.exe 2016.3抛出异常

我已经下载了ReSharper的inspectcode.exe版本2016.3,但即使是"inspectcode.exe --help"也无法顺利运行并显示许多错误.

首先它打印"运行...",然后是五个例外,最后是帮助文本.

什么可以解决这个问题?使用9.1.1版本没有任何问题.

输出inspectcode.exe - help

PS C:\somefolder> .\inspectcode.exe --help
JetBrains Inspect Code 2016.3.1
Running in 64-bit mode, .NET runtime 4.0.30319.42000 under Microsoft Windows NT 6.2.9200.0
Component JetBrains.Application.SinceClr4.Extensions.JetPackageRepositoryFactoryEnvironmentComponent [Singleton, Corrupted] construction has failed. Could not bind a part catalog assembly "JetBrains.Platform.Shell.SinceClr4, Version=107.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325" by loading from file C:
\inspectcodeFolder\JetBrains.Platform.Shell.SinceClr4.dll. Could not load file or assembly 'file:///C:\inspectcodeFolder\JetBrains.Platform.Shell.SinceClr4.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515.) An attempt was made to load an assembly from …
Run Code Online (Sandbox Code Playgroud)

.net c# resharper command-line

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

使用 unixODBC 连接 Oracle:TNS:net 服务名称指定不正确

我正在尝试从 Ubuntu 连接到 Windows Server 中的 Oracle。我已经为 Ubuntu 安装了 unixODBC 和 Oracle 驱动程序。当我尝试使用 isql 连接时,出现以下错误:

user@user:~$ isql -v oracle-jono username password
[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12545: Connect failed because target host or object does not exist
[ISQL]ERROR: Could not SQLConnect
Run Code Online (Sandbox Code Playgroud)

当我用 sudo 运行它时,我得到了不同的错误:

[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified
Run Code Online (Sandbox Code Playgroud)

我尝试了许多环境变量的组合,但都没有成功(ORACLE_HOME、ORACLE_SID、TNS_ADMIN、TWO_TASK)。这是我第一次使用 Oracle 做任何事情,所以实际上我对此一无所知。我还尝试修改 odbc.ini 和 tnsnames.ora 文件。

我用于此 Oracle 连接的 odbc.ini:

[oracle-jono]
Description = ...
Driver      = OracleDriver
Server      = 111.222.111.222
User        = ...
Password    = ...
Port        = 1521
Database    = mydatabase
Run Code Online (Sandbox Code Playgroud)

我的 …

oracle ubuntu odbc unixodbc

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

dotnet仅从VSTS解决方案中发布一个项目

我们正在尝试从带有.NET Core任务的VSTS中的Visual Studio解决方案构建一个项目。我们能够“ dotnet构建”该项目。但是,当我们尝试“ dotnet发布”时,它将尝试发布解决方案中的所有项目。即使我们使用“ dotnet custom”,它也会尝试发布所有项目。

有没有一种方法可以使用.NET Core任务仅发布一个或多个已构建的项目?还是应该运行自定义命令行任务?

原因是我们有一个不会构建的项目,并且我们不需要/不想发布它。因此,我们希望构建和发布一个项目,而不是所有项目。

VSTS的屏幕截图

c# .net-core azure-devops

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