小编Dim*_*rov的帖子

断言包含匿名类型的JsonResult

我试图在我的一个控制器中单独测试一个方法,返回一个JsonResult.令我惊讶的是,以下代码不起作用:

[HttpPost]
public JsonResult Test() {
    return Json(new {Id = 123});
}
Run Code Online (Sandbox Code Playgroud)

这是我测试它的方式(还要注意测试代码驻留在另一个程序集中):

// Act
dynamic jsonResult = testController.Test().Data;

// Assert
Assert.AreEqual(123, jsonResult.Id);
Run Code Online (Sandbox Code Playgroud)

Assert抛出一个异常:

'object'不包含'Id'的定义

我已经通过使用以下方法解决了它:

[HttpPost]
public JsonResult Test() {
   dynamic data = new ExpandoObject();
   data.Id = 123;
   return Json(data);
}
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么不是第一个工作?它似乎也基本上适用于任何匿名类型.

c# asp.net-mvc json unit-testing

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

无法隐式转换类型'int?' 'int'.

我收到错误"无法隐式转换类型'int?' 到'int'.在返回行的OrdersPerHour上存在显式转换(你是否错过了演员?)我不确定为什么,因为我的C#技能不是那么先进.任何帮助,将不胜感激.

static int OrdersPerHour(string User)
{
    int? OrdersPerHour;
    OleDbConnection conn = new OleDbConnection(strAccessConn);
    DateTime curTime = DateTime.Now;        

    try
    {
        string query = "SELECT COUNT(ControlNumber) FROM Log WHERE DateChanged > #" + curTime.AddHours(-1) + "# AND User = '" + User + "' AND Log.EndStatus in ('Needs Review', 'Check Search', 'Vision Delivery', 'CA Review', '1TSI To Be Delivered');";
        OleDbCommand dbcommand = new OleDbCommand(query, conn);
        dbcommand.Connection.Open();
        dbcommand.CommandType = CommandType.Text;
        OrdersPerHour = (int?)dbcommand.ExecuteScalar();

        Console.WriteLine("Orders per hour for " + User + " …
Run Code Online (Sandbox Code Playgroud)

c# executescalar

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

精致无限的多映射

所以我有一种情况,我必须加入(并映射)超过7个实体(据我所知,这是Dapper的当前限制).这是我到目前为止(伪代码):

using (var connection = new SqlConnection(_connectionString)) {
   IEnumerable<BigEntity> results = 
      connection.Query<BigEntity, Lookup1, Lookup2, ... around 10 of them>(sql, 
         (b, l1, l2, l3) => {
            // map and return here
         },
         splitOn: "split1, split2 ...");
}
Run Code Online (Sandbox Code Playgroud)

这种限制有什么办法吗?以前有人面对这个吗?也许一些Dapper扩展?

c# dapper

17
推荐指数
2
解决办法
2444
查看次数

按值排序字典(字符串,整数)

所以基本上我遇到了我已经给出的任务的问题.我不会厌倦任务本身的细节,所以我只会给你相关的信息.

我有一本字典,我需要按最高的int [value]排序,准确地排在前五位,我需要能够显示底部的五位.

Dictionary<string, int> dict = new Dictionary<string, int>();
Run Code Online (Sandbox Code Playgroud)

字符串(键)包含已为文本文件读取的单词.整数(值)包含文档中提到它们的次数.

我打算用另一种方式做,但我被告知要用字典做,所以请字典只帮助.我很感激,如果你能解释它应该怎么做,这样我就可以学习并完成任务,因为任务的目的是教育自己,但我发现它有点难...

我提前感谢您的帮助,如果需要更多信息,请告诉我,我会发布!

c# sorting

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

带去抖动的 useEffect

我正在尝试创建一个输入字段,该字段的值已去抖动(以避免不必要的服务器行程)。我第一次渲染我的组件时,我从服务器获取它的值(有一个加载状态等等)。

这是我所拥有的(出于示例的目的,我省略了不相关的代码)。

这是我的去抖动钩子:

export function useDebounce(value, delay) {
  const [debouncedValue, setDebouncedValue] = useState(value);

  useEffect(() => {
    const handler = setTimeout(() => {
      setDebouncedValue(value);
    }, delay);

    return () => clearTimeout(handler);
  }, [value, delay]);

  return debouncedValue;
}
Run Code Online (Sandbox Code Playgroud)

(我从:https : //usehooks.com/useDebounce/得到这个)

是的,这是我的组件以及我如何使用useDebounce钩子:

function ExampleTitleInput(props) {
  const [title, setTitle] = useState(props.title || "");
  const [lastCommittedTitle, setLastCommittedTitle] = useState(title);
  const [commitsCount, setCommitsCount] = useState(0);

  const debouncedTitle = useDebounce(title, 1000);

  useEffect(() => {
    setTitle(props.title || "");
  }, [props.title]);

  useEffect(() => {
    if …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

10
推荐指数
2
解决办法
6871
查看次数

在 ASP.NET Core 3.1 中的 Program.cs Web 主机生成器中使用 IWebHostEnvironment

我有一个ASP.NET 3.1的核心应用程序,我需要访问IWebHostEnvironmentProgram.cs虚拟主机制造商。这就是我现在所拥有的(Program.cs):

public class Program {

    public static void Main(string[] args) {
        CreateWebHostBuilder(args).Build().Run();
    }

    private static bool IsDevelopment => 
        Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development";

    public static string HostPort => 
        IsDevelopment 
            ? "5000" 
            : Environment.GetEnvironmentVariable("PORT");

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseUrls($"http://+:{HostPort}")
            .UseSerilog((context, config) => {
                config.ReadFrom.Configuration(context.Configuration);
            })
            .UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)

IsDevelopment我不想按照我的方式进行检查,而是想使用IsDevelopment()from的方法IWebHostEnvironment,但不完全确定如何执行此操作。我现在拥有的东西有效,但老实说它“感觉不对”。

c# asp.net-core

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

Twitter Bootstrap Typeahead部队选择

我在我的应用程序中使用Bootstrap Typeahead插件,这是我的代码(这是一个例子).我正在寻找一种方法来验证用户的选择(基本上如果输入与任何结果不匹配 - >在模糊时清空框).结果必须匹配.我到处搜索,找不到东西.非常感谢您的帮助.

    $('#search').typeahead({
        source: function (query, process) {
            var states = [];
            var map = {};

            var data = [
                { "stateCode": "CA", "stateName": "California" },
                { "stateCode": "AZ", "stateName": "Arizona" },
                { "stateCode": "NY", "stateName": "New York" },
                { "stateCode": "NV", "stateName": "Nevada" },
                { "stateCode": "OH", "stateName": "Ohio" }
            ];

            $.each(data, function (i, state) {
                map[state.stateName] = state;
                states.push(state.stateName);
            });

            process(states);
        }
    });
Run Code Online (Sandbox Code Playgroud)

javascript jquery twitter-bootstrap bootstrap-typeahead

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

asp.net mvc4中的web.config中的Windows身份验证

我需要从我启用Windows身份验证web.config,而不在IIS中设置它.

我有以下元素web.config:

  authentication mode="Windows
  identity impersonate="true 
Run Code Online (Sandbox Code Playgroud)

但是Windows身份验证不起作用.我该如何解决这个问题?

c# authentication iis asp.net-mvc-4

7
推荐指数
4
解决办法
2万
查看次数

异步/等待执行差异

我正在努力掌握异步/等待,我想澄清一些混乱.有人可以解释以下执行方面的差异:

// version 1
public Task Copy(string source, string destination) {
    return Task.Run(() => File.Copy(source, destination));
}

public async Task Test() {
    await Copy("test", "test2");    
    // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

和:

// version 2
public async Task Copy(string source, string destination) {
    await Task.Run(() => File.Copy(source, destination));
}

public async Task Test() {
    await Copy("test", "test2");
    // ...
}
Run Code Online (Sandbox Code Playgroud)

它们是否会产生相同的代码,为什么我会在另一个上面写一个?

c# asynchronous async-await

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

枚举与索引与迭​​代

我已经读了Eric Lippert的博客一段时间了(它很棒,你应该看一下).在他的一篇文章的评论中,他提到他无意索引一系列数字而只是枚举它们.

枚举和索引有什么区别,我到处搜索?在我的搜索过程中,当迭代进入等式时,我变得更加困惑?有人可以解释这三个概念,甚至可以举个例子吗?在你将其标记为欺骗之前,我已经看到了关于"迭代器与普查员"的一些问题,但我还是看到了正确的解释(因此问题).我感谢您的帮助.

c# enumeration conceptual

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