小编Ale*_*lex的帖子

在C#中的条件块之后,半冒号做了什么?

我最近在一个项目中遇到了这个代码 - 我认为这是错误的:

if(condition)
{
   //Whatever...
};
Run Code Online (Sandbox Code Playgroud)

注意闭合支撑后的半冒号.

有谁知道这是什么影响?

我认为它没有任何影响,但会认为它会导致编译器错误.

c# compilation termination

31
推荐指数
3
解决办法
2332
查看次数

枚举在 WebAPI 中返回字符串值

我在我的 Web API 项目中遇到了一段代码,它有一个这样结构的类:

public class QuestionDto
{
    public bool disabled {get;set;}
    public int id {get;set;}
    public int order {get;set;}
    public PositionDto pagePosition {get;set;}
    public string title {get;set;}
}

public enum PositionDto
{
    FullWidth = 0,
    Half = 1
}
Run Code Online (Sandbox Code Playgroud)

有一个 API 调用返回QuestionDto,如下:

[Route("")]
[HttpGet]
[ResponseType(typeof(QuestionDto))]
public async Task<IHttpActionResult> GetCategoryQuestions()
{
    return Ok(new QuestionDto { PagePosition = PagePositionDto.Half });
}
Run Code Online (Sandbox Code Playgroud)

这是 Chrome 控制台网络选项卡中的一个片段,显示了此 API 调用的响应:

在此处输入图片说明

枚举如何返回它的文本值,而不是它的 int 值?

为了进一步混淆这一点,如果我然后采用相同的类结构并将其复制并粘贴到不同的项目,则返回此对象的 api 调用将返回 int 值 - 这正是我所期望的。

那么第一个项目可以返回字符串值吗?

是否有一些设置可以使此枚举返回其字符串值?

c# enums asp.net-web-api

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

addEventListener drop 不触发

我正在尝试将放置事件附加到 HTML div:

document.getElementById('sub-main').addEventListener("drop", 
                                     () => {console.log('DROP')});
Run Code Online (Sandbox Code Playgroud)

但它不火。添加用于测试目的的点击事件有效 - 此点击事件触发:

document.getElementById('sub-main').addEventListener("click", 
                                     () => {console.log('Click')});
Run Code Online (Sandbox Code Playgroud)

我读过从返回 falseondragover会有所帮助:

document.getElementById('sub-main').addEventListener("ondragover", 
                                     () => {return false});

document.getElementById('sub-main').addEventListener("drop", 
                                     () => {console.log('Drop')});
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。我尝试设置draggable为 true:

document.body.setAttribute('draggable', true);
Run Code Online (Sandbox Code Playgroud)

但也没有运气!

将事件侦听器记录到控制台并getEventListeners() 显示所有事件,甚至是我选择的任何随机事件名称:

getEventListeners(document.getElementById('sub-main'));
Run Code Online (Sandbox Code Playgroud)

但是 drop 事件仍然没有触发。有任何想法吗?

javascript events drag-and-drop

9
推荐指数
2
解决办法
7482
查看次数

使用 Mock 进行 Nunit 测试。接口实例

我有以下(简化的)代码。

public class Controller
{
     private readonly IService _service;

     public Controller(IService service)
     {
         _service = service;
     }

     public async Task<IHttpActionResult> Create(MyObject object)
     {
         var result = _service.method(object);
         if (!result.Succeeded)
         {
            return this.GetErrorResult(object);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

而 SimpleInjector 用于注入 _service 与其实现类之间的依赖关系,如下所示:

public static void Register(Container container)
{
    container.Register<IService, Service>();
}
Run Code Online (Sandbox Code Playgroud)

请注意,注入和单元测试对我来说是新的,所以我不完全理解它们,但正在学习。

如果我通过 Swagger 运行应用程序,一切正常。

请注意,Register当我通过 Swagger 运行应用程序时会调用该函数。

现在,我正在尝试使用 NUnit 设置一些单元测试,并像这样模拟 IService 对象:

var Service = new Mock<IService>();
Controller _controller = new Controller(Service.Object);
_controller.Create(new MyObject object());
Run Code Online (Sandbox Code Playgroud)

到目前为止,这对我来说似乎是正确的 - 尽管我不确定?

问题是对于单元测试, …

c# nunit moq mocking simple-injector

6
推荐指数
2
解决办法
3万
查看次数

CSS内容粗体单词

我有以下CSS在元素后添加一些文本:

header h1:after {
    content:"Bold \A not bold";
    white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)

我的目标是使第一个单词变为粗体,而其余部分则不是粗体.

我知道如何使所有文本变粗,我知道我可以使用HTML来实现这一点,但就我目前的目的而言,我想尝试使用CSS实现这一点.

对谷歌没有搜索结果,可以吗?

css

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

如何调用Identity.EntityFramework OnModelCreating

我正在做两个类似的项目 - 但我没有创建它们中的任何一个.

它们都具有相同的本地上下文,如下所示:

using Microsoft.AspNet.Identity.EntityFramework;

    public class LocalContext :
        IdentityDbContext
            <ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
    {
     //.....

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            AddConfigurations(modelBuilder);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在整个项目中搜索引用以OnModelCreating返回上面提到的2个实例,以及命名空间中对此方法的引用Microsoft.AspNet.Identity.EntityFramework

这些项目是使用Onion架构制作的,我使用Swagger运行REST层.

问题是,在其中一个项目中,OnModelCreating当我启动应用程序(我期望)时会调用它,而在另一个项目中,它会在用户第一次执行操作时调用.

谁能解释为什么会这样?

我假设某个地方有一个触发此调用的设置 - 但是我找不到它 - 正如我上面所说的,我已经搜索了整个项目,但找不到任何调用此方法的地方.

据我所知,两个项目之间的所有参考文献都是相同的 - 有人可以帮忙吗?

c# entity-framework asp.net-identity

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

反应绘图选项 onclick 事件

我在我的 React 应用程序中制作了一个 highcharts 柱状图,现在正在尝试向图表添加一个 onClick 事件。我的目标是当用户点击一列时,我可以获取 X 和 Y 轴的值,然后从页面调用一个函数。

onClick 事件是使用 plotoptions 实现的,如下所示:

plotOptions={{
  series: {
    cursor: 'pointer',
    point: {
      events: {
        click: () => {
          this.fuction.call(this, 1);
        }
      }
    }
  }
}}
Run Code Online (Sandbox Code Playgroud)

问题在于我可以调用该函数,但无法访问该列的值。

所以,我试试这个:

plotOptions={{
  series: {
    cursor: 'pointer',
    point: {
      events: {
        click: function () {
          console.log(this);
        }
      }
    }
  }
}}
Run Code Online (Sandbox Code Playgroud)

这样,我可以访问列上的值,this但不能调用该函数,因为它不保存当前页面对象。

我的问题是,如何将两者结合起来,以便访问所选列的值并调用页面上的函数?

我试过这个:

plotOptions={{
  series: {
    cursor: 'pointer',
    point: {
      events: {
        click: function (e) {
          console.log(this);
          console.log(e);
        }
      }
    }
  } …
Run Code Online (Sandbox Code Playgroud)

javascript onclick highcharts reactjs react-highcharts

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

自动选择HTML输入中的文本

我的HTML输入如下:

<input type="text" value="Link etc..." readOnly={true}/>
Run Code Online (Sandbox Code Playgroud)

我试图使输入内的文本在页面上显示输入的位置自动突出显示.

我发现了许多问题,显示了如何执行此操作onClick等,但没有在输入显示时默认突出显示文本的问题.

我确信这是一项简单的任务 - 但我无法在任何地方找到答案!

注意:我确信我可以通过在我的页面上触发JavaScript函数来解决如何实现这一点 - 但这似乎有点矫枉过正 - 我试图在HTML声明中实现这一点

我也在使用React - 但我不认为这与这个问题有关吗?

html input

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

使用 AND 和 OR 的 C# 谓词构建器

我有以下课程:

public class testClass
{
    public string name { get; set; }
    public int id { get; set; }
    public int age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及以下代码:

            var list = new List<testClass>();
            list.Add(new testClass { name = "name", id = 1, age = 30 });
            list.Add(new testClass { name = "name", id = 2, age = 22 });
            list.Add(new testClass { name = "name", id = 3, age = 20 });
            list.Add(new testClass { name = "name", id = …
Run Code Online (Sandbox Code Playgroud)

c# linq predicatebuilder

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

SQL ServerWhere子句变量可能为空

我有以下查询(SQL 服务器):

DECLARE @UserId INT;
SET @UserId = //... set by dynamic variable

SELECT *
FROM Users
WHERE userId = @UserId
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果为@UserId空,查询将无法正确评估。

如果变量为空或不为空,如何编写此查询以正确评估?

编辑:

有很多建议使用以下内容:

WHERE (@UserId IS NULL OR userId = @UserId)
Run Code Online (Sandbox Code Playgroud)

或类似。

在这种情况下,如果有一个包含 3 个条目的表,其中 userId 为 1,2 和 3,则变量“@UserId”为 NULL,则此查询将返回所有 3 个条目。我实际上需要它返回的是没有条目,因为它们的 userId 都不为 NULL

sql sql-server

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