小编Mor*_*idt的帖子

Haskell - 为什么我要使用无限数据结构?

在 Haskell 中,可以像这样定义无限列表:

[1.. ]
Run Code Online (Sandbox Code Playgroud)

如果找到许多描述如何实现无限列表的文章,并且我了解这是如何工作的。但是,我想不出有什么理由使用无限数据结构的概念。

有人可以给我一个问题的例子,在 Haskell 中使用无限列表可以更容易地(或者可能只是)解决这个问题?

haskell functional-programming lazy-evaluation

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

ChartJS将工具提示添加到分组条形图

我试图使用ChartJS将欧元符号添加到我的分组条形图的工具提示中.剪断:

tooltips: {
   mode: 'label',
   callbacks: {
      label: function(tooltipItem, data) {
         return data['datasets'][0]['data'][tooltipItem['index']] + '€';
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

此代码适用于我的折线图,但不适用于我的分组条形图.当我将鼠标悬停时,我希望我的条形图看起来如下所示:

在此输入图像描述

但是我的图表中没有欧元符号,只显示其价值.我究竟做错了什么?

谢谢.

**编辑

所以我的全部选项如下所示:

options: {
            title: {
                display: true,
                text: 'Title',
            },
            scales: {
                yAxes: [{
                    scaleLabel: {
                        display: true,
                        labelString: 'Wert in €'
                    }
                }],
                xAxes: [{
                    scaleLabel: {
                        display: true,
                        labelString: 'Zeitintervall'
                    }
                }]
            },
            tooltips: {
                mode: 'label',
                    callbacks: {
                        label: function(tooltipItem, data) {
                            return data['datasets'][0]['data'][tooltipItem['index']] + '€';
                        }
                    }
            }
        }
Run Code Online (Sandbox Code Playgroud)

一旦我删除它scales,它显示欧元符号.所以我现在的选择如下:

options: { …
Run Code Online (Sandbox Code Playgroud)

javascript charts chart.js

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

集成测试控制器用[Authorize]属性修饰

我的应用程序是ASP.NET Core 1.0 Web API.

正如标题所说:我如何测试用Authorize属性修饰的控制器?

例如,使用此控制器和testmethod:

  [TestMethod]
  public void GetSomeDataTest()
  {
     var controller = new MyController();
     Assert.AreEqual(controller.GetSomeData(), "Test");
  }

  [Authorize]
  public ActionResult GetSomeData()
  {
     return this.Content("Test");
  }
Run Code Online (Sandbox Code Playgroud)

这只是一个示例代码,使您可以回答.我实际上调用了Controller一个TestServer对象.

被问到,但接受的答案不再适用.有什么建议我如何"伪造"用户的真实性?

谢谢

c# asp.net integration-testing bearer-token asp.net-core

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

通过 TestServer 测试用 [Authorize] 属性修饰的控制器

我的应用程序是一个 ASP.NET Core 1.0 Web API。

我想用TestServer对象测试我的控制器。

我有一个用Authorize属性装饰的控制器类。

我如何获得我的测试客户端:

protected HttpClient GetTestClient(){
         var builder =
            new WebHostBuilder().UseContentRoot(this.path)
               .UseStartup<Startup>()
               .UseEnvironment("Development")
               .ConfigureServices(services => services.AddTransient<IAnInterface, AMock>());

         var server = new TestServer(builder);
         var client = server.CreateClient();

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

我如何使用它的片段:

[TestMethod]
public void ShouldReturnSuccessful()
{
     var response = await this.client.PostAsync(Url, content);
     response.EnsureSuccessStatusCode();
}
Run Code Online (Sandbox Code Playgroud)

如果我Authorize从控制器类中删除该属性,我的所有测试都可以正常工作,但是如果Authorize设置了该属性,我就会明白System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized). 这是有道理的。

现在我知道我可以Bearer Token从请求TestServer并执行以下操作:

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "My …
Run Code Online (Sandbox Code Playgroud)

.net-security authorize-attribute oauth-2.0 asp.net-web-api asp.net-core

6
推荐指数
0
解决办法
1237
查看次数

intelliJ IDEA为JAR添加资源

我有一个使用资源的应用程序(.wav .png- files).我想在构建项目时将这些资源包含在我的.jar中.

从IDE运行应用程序运行良好.

如上所述这里,我创造了resources-folder在同级别我src-folder

我的项目结构:

ProjectName --        
              |
              out
              |
              resources --
              |           |
              |           sounds
              |           |
              |           images
              src --
                    |
                    ...
Run Code Online (Sandbox Code Playgroud)

如上所述这里,我已经标记文件夹resourcesResources root.

如上所述这里,我创造了我自己的假象Project structure.这是他们的样子: 在此输入图像描述

这段代码,适用于音频文件,例如:

new Media(new File("resources/sounds/login_sound.wav").toURI().toString());
Run Code Online (Sandbox Code Playgroud)

当我尝试通过终端运行jar时,Iam收到以下错误:

Caused by: MediaException: MEDIA_UNAVAILABLE : /home/moritz/IdeaProjects/TheFloorIsLavaGUI/out/artifacts/TheFloorIsLavaGUI_jar/resources/sounds/login_sound.wav (File or directory not found)
Run Code Online (Sandbox Code Playgroud)

完整的堆栈跟踪:

    moritz@Momix:~/IdeaProjects/TheFloorIsLavaGUI/out/artifacts/TheFloorIsLavaGUI_jar$ java -jar TheFloorIsLavaGUI.jar 
Gtk-Message: 12:33:12.649: Failed to load module "canberra-gtk-module"
Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native …
Run Code Online (Sandbox Code Playgroud)

artifacts jar intellij-idea

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

JSON字符串被切断

我的应用程序是ASP.NET Core 1.0 Web API。

如果我的控制器返回一个小的JSON,则一切正常。但是,如果JSON变大,则会出现此错误

Visual Studio给我这个错误

这是创建数据的控制器和方法(简称)

  [HttpGet]
  public async Task<IActionResult> GetUserData()
  {        
        return this.Ok(GetSomeData());
  }

   private List<MyUser> GetSomeData()
   {
       var userList = new List<MyUser>();
       for (int i = 0; i < 2500; i++)
       {
            userList.Add(new MyUser{
                Name = "Data",
                Age = i,
                Phone = "000",
            });
       }
       return userList;
   }
Run Code Online (Sandbox Code Playgroud)

如果循环变大,则Iam会收到上面列出的错误。

请记住,代码是极其简化的。但是一切正常,直到返回大量数据。

我曾试图改变maxJsonLengthweb.config,因为它是描述在这里

c# json asp.net-core-mvc asp.net-core

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

.NET核心字节数组到图像

如何byte[]在.NET Core中将其转换为图像?

我发现

using (var ms = new MemoryStream(byteArrayIn))
{
    return Image.FromStream(ms);
}
Run Code Online (Sandbox Code Playgroud)

但似乎Image不存在.NET-Core

.net-core asp.net-core

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

launchSettings.json commandName用法

每次我找到一些launchSettings.json文件时,它们都有以下结构:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:40088/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IIS Express (Staging)": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Staging"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这里找到.

但是,我无法找到有关该属性的任何文档commandName.有什么用commandName

谢谢

.net asp.net asp.net-core

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

为什么从 sockaddr_in 到 sockaddr 的转换有效

在 C 语言中,bindSocket 的典型方式如下:

int server_socket_fd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr;
int port_number = 55555;

addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(port_number);

int result = bind(server_socket_fd,(struct sockaddr *)&addr , sizeof(addr));
if(bind_result > 0)
{
    // Stuff
}
Run Code Online (Sandbox Code Playgroud)

sockaddr_in我想知道为什么从到 的转换sockaddr有效,因为我找不到任何文档说明它为什么有效。似乎每个人都这样做。

为什么类型转换在这里起作用?

我不是问我们为什么要铸造它,这已经在这里得到了回答。我问为什么它有效。

c sockets linux bind

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

JavaFX 运行时主要方法

JavaFX的Hello World-Tutorial说:

当使用 JavaFX Packager 工具创建应用程序的 JAR 文件时,JavaFX 应用程序不需要 main() 方法,该工具将 JavaFX Launcher 嵌入 JAR 文件中。但是,包含 main() 方法很有用,因此您可以运行在没有 JavaFX Launcher 的情况下创建的 JAR 文件,例如在使用未完全集成 JavaFX 工具的 IDE 时。此外,嵌入 JavaFX 代码的 Swing 应用程序需要 main() 方法。

我试过了,这是真的,我可以在没有main方法的情况下启动我的应用程序。

但是,当我从类中声明一个main方法调用时,该程序仍然有效。Application的文档说,JavaFX 运行时正在创建类的实例并调用该方法。launchApplicationApplicationinit

但是 JavaFX 运行时是如何启动的呢?我的意思是必须在main某处有一种方法,才能开始一切。所以我想知道我是否自己声明了一个main方法,不是有两个吗?

java javafx

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