我在Visual Studio 2017版本15.7.2中创建了ASP.NET Core Web API项目。
当我创建它时,它是Microsoft.NetCore.App 2.0。
现在我想更新到,Microsoft.NetCore.App 2.1.4但我不能,因为Visual Studio告诉我:
SDK隐式引用。要更新程序包,请更新程序包所属的SDK
我下载了.NET Core的最新版本并安装了它,但是遇到了同样的问题。
有任何想法吗?
我想对控制器中的特定操作方法禁用模型验证。我有这个场景:
public class SomeDto
{
public string Name { get; set; }
}
public class SomeDtoValidator : AbstractValidator<SomeDto>, ISomeDtoValidator
{
public SomeDtoValidator ()
{
RuleFor(someDto=> someDto.Name).NotNull().WithMessage("Name property can't be null.");
}
}
Run Code Online (Sandbox Code Playgroud)
我有 ISomeDtoValidator 因为我以自己的方式注册了所有验证器:
public class Startup
{
// .... constructor ....
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.AddMvc(setup => {
//...others setups...
}).AddFluentValidation();
services.RegisterTypes(Configuration)
.RegisterFluentValidation()
.RegisterMappingsWithAutomapper()
.RegisterMvcConfigurations();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IConfiguration configuration)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我在 Controller 中有这个 Action 方法:
[DisableFormValueModelBinding]
public …Run Code Online (Sandbox Code Playgroud) 使用xUnit和Moq检查是否根据另一个方法的返回值执行一个方法。例:
public class A
{
public bool M1() { // return true or false ... }
public void M2() { // Do something ..... }
}
public class B
{
private A objectA;
public B(A a)
{
objectA = a;
}
public void Mb ()
{
for(int i = 0; i <= 5; i++)
{
if (objectA.M1())
{
return;
}
objectA.M2();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想验证这样的事情:
[Fact]
public void Test()
{
// Arrange
Mock<A> mockA = new Mock<A>();
mockA.Setup(x => x.M1()).Return(true); …Run Code Online (Sandbox Code Playgroud) 我在 ASP.NET Core 2.0 中开发了一个 WebApi RESTful。从控制器中的动作方法 AI 想要为位于不同控制器 B 中的动作方法创建 URL 地址:
[Route("api/applications/{idbcon}/bcontrollers")]
public class BController : Controller{
[HttpGet({idbcon}), Name = "ActionB"]
public IActionResult ActionB(int idbcon, [FromHeader(Name = "Accept")] string mediatype){
return OK();
}
}
Run Code Online (Sandbox Code Playgroud)
[Route("api/applications/{idapp}/bcontrollers/{idbcon}/acontrollers")]
public class AController: Controller{
[HttpGet(), Name = "GetURLBController"]
public IActionResult GetURLBController()
{
var url = /* Here I would like to get the link to "ActionB" that belong to a Controller "BController" */;
return Ok(url);
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议吗???