小编Cod*_*ler的帖子

'decimal'不包含'Round'的定义

C#的新手,并在第一次尝试使用Round方法时遇到此编译错误.有任何想法吗?谢谢:

private void totalPoundsTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox textBox = textBoxes[1];
    decimal numericValue = textBoxNumberCheck(textBox, 0M, 22046M,false);
    if (numericValue >= 0)
        ***weight.Kilos =  decimal.Round(numericValue / 2.2046M, 2, MidpointRounding.AwayFromZero);***
        UpdateBoxValues();
}
Run Code Online (Sandbox Code Playgroud)

c#

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

在AspNetCore中使用GlobalExceptionHandler和自定义中间件

app.UseExceptionHandler(GlobalErrorHandler)在AspNetCore中使用,之后是一个自定义中间件.单独使用它们时它们可以正常工作,但是当同时使用它们时,异常会在我的自定义中间件中抛出并导致调用崩溃.发生这种情况await _next.Invoke(context).我也尝试使用ExceptionFilter,但结果相同.我的全局异常处理看起来像这样.有没有办法阻止异常冒泡?

  app.UseCustomMiddleware();
  app.UseExceptionHandler(GlobalErrorHandler);
  app.UseMvc();


private void GlobalErrorHandler(IApplicationBuilder applicationBuilder)
{
  applicationBuilder.Run(
  async context =>
     {
       context.Response.ContentType = "text/html";
       var ex = context.Features.Get<IExceptionHandlerFeature>();
       if (ex != null)
       {
         string errorMessage;
         var webFault = ex.Error as WebFaultException<string>;
         if (webFault != null)
         {
           context.Response.StatusCode = (int)webFault.StatusCode;
           errorMessage = webFault.Detail;
         }
         else
         {
           if (ex.Error is UnauthorizedAccessException)
           {
             context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
             errorMessage = string.Empty;
           }
           else
           {
             context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
             errorMessage = ex.Error.Message + new StackTrace(ex.Error, true).GetFrame(0).ToString();
           }

           _logger.Error(errorMessage, ex.Error); …
Run Code Online (Sandbox Code Playgroud)

exception-handling asp.net-core asp.net-core-middleware

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

自动生成对象 ID mongo db c#

我用 C# 学习 mongodb,我想创建一个包含实体列表的记录,但子实体没有生成他的对象 ID。

这是我的代码:

public class Curso
{
    [BsonId]
    public ObjectId _id { get; set; }

    [BsonElement("descripcion")]
    public string descripcion { get; set; }

    [BsonElement("horas")]
    public int horas { get; set; }

    [BsonElement("alumnos")]
    public IEnumerable<Alumno> alumnos { get; set; }

    public Curso()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

校友实体:

public class Alumno
{
    [BsonId]
    public ObjectId _id { get; set; }

    [BsonElement("name")]
    public string name { get; set; }

    [BsonElement("age")]
    public int age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我插入了一个新课程,自动生成 id Curso …

c# database identity mongodb mongodb-.net-driver

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

Jwt Code无法在.NET Core 2上运行

我正在尝试学习如何将Add Jwt用于我正在使用的API.我已经介绍了如何使用Jwt构建API.我的应用程序现在确实生成了Jwt代码但是当我调用API的Authorize部分时,使用Authorization标头和Bearer使用post man我得到401 Unauthrized响应.我的代码是

StattUp.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {


        /**/
        services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true,
                    ValidateAudience = true,
                    ValidateLifetime = true,
                    ValidateIssuerSigningKey = true,
                    ValidIssuer = Configuration["Jwt:Issuer"],
                    ValidAudience = Configuration["Jwt:Issuer"],
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
                }; …
Run Code Online (Sandbox Code Playgroud)

c# api jwt asp.net-core asp.net-core-2.0

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

如何为视图文件中的异常配置自定义错误页面?

我们正在使用UseStatusCodePagesWithReExecute中与设置一个简单的自定义中间件组合Response.StatusCode500,成功地将用户引导至我们的自定义错误页上发生在MVC控制器例外.

但是,对于在razor/cshtml视图中发生的异常,UseStatusCodePagesWithReExecute不会将用户发送到我们的错误页面(尽管我们的自定义中间件会检测到这些异常Invoke()).

我们也尝试使用异常过滤器,但它只捕获控制器操作的异常,而不是视图.

如果异常来自视图,有没有办法将用户发送到我们的错误页面?

asp.net-core-mvc asp.net-core asp.net-core-2.0

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

通用存储库的依赖注入

用3个参数注册通用类的方法是什么

public interface ITest<T,V,VE>
{

}

public class TestRespository<T,V,VE>:ITest<T,V,VE>
{

}
Run Code Online (Sandbox Code Playgroud)

我是这样注册的

services.AddScoped(typeof(ITest<,,>), typeof(ITest<,,>));
Run Code Online (Sandbox Code Playgroud)

但无法进入构造函数以及

service.GetService(typeof(ITest<TestClass, vTestClass, VETestClass>)) as ITest<TestClass, vTestClass, VETestClass>;
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc unity-container asp.net-core

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

C# Unity - 在运行时更改具体实现

我在 IoC 方面遇到了一些麻烦 - 特别是使用 Unity。

假设我有一个应用程序要用来发送电子邮件。我会像这样建模:

public interface IEmailSender
{
  void SendEmail();
}
Run Code Online (Sandbox Code Playgroud)

然后创建接口的一些实现:

public class GmailEmailSender : IEmailSender
{
  public void SendEmail()
  {
      //code to send email using Gmail
  }
}

public class YahooEmailSender : IEmailSender
{
  public void SendEmail()
  {
      //code to send email using Yahoo
  }
}
Run Code Online (Sandbox Code Playgroud)

我还有一门课来实际发送电子邮件

public class EmailSender
{
   IEmailSender _emailSender;
   public EmailSender(IEmailSender emailSender)
   {
       _emailSender= emailSender;
   }

   public void Send()
   {
      _emailSender.SendEmail();
   }
}
Run Code Online (Sandbox Code Playgroud)

所以我了解如何配置 Unity 以始终使用其中一种实现:

IUnityContainer container = new UnityContainer().RegisterType<IEmailSender, …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection inversion-of-control unity-container

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