小编Nat*_*ini的帖子

单元测试.NET Standard 1.6库

我无法找到有关如何对.NET Standard 1.6类库(可以从.NET Core项目中引用)进行单元测试的最新文档.

这是project.json我的图书馆的样子:

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.0",
    "Portable.BouncyCastle": "1.8.1.2"
  },
  "frameworks": {
    "netstandard1.6": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

现在剩下的任务是能够创建某种可以进行单元测试的项目.目标是使用xUnit,因为这似乎是.NET Core团队正在推动的.

我继续创建了另一个.NET可移植的库项目,它有一个如下所示的project.json:

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.0",
    "xunit": "2.2.0-beta4-build3444",
    "xunit.runner.visualstudio": "2.1.0"
  },
  "frameworks": {
    "netstandard1.6": {

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我在该项目中的测试类如下所示:

using USB.EnterpriseAutomation.Security.DotNetCore;
using Xunit;

namespace Security.DotNetCore.Test
{
    public class AesEncryptionHelperTests
    {
        [Fact]
        public void AesEncryptDecrypt()
        {
            var input = "Hello world!";
            var encrypted = AesEncryptionHelper.AesEncrypt(input);
            var decrypted = AesEncryptionHelper.AesDecrypt(encrypted);

            Assert.Equal(input, …
Run Code Online (Sandbox Code Playgroud)

.net c# xunit.net .net-core project.json

16
推荐指数
2
解决办法
9630
查看次数

Nexus One/Android"CPU可能被挂钩"的bug

我正在使用NDK(修订版4)和OpenGL ES 2.0为Nexus One编写图形密集的游戏.我们真的在这里推动硬件,并且在大多数情况下它运行良好,除了每隔一段时间我就会遇到这个日志消息严重崩溃:

W/SharedBufferStack(398):waitForCondition(LockCondition)超时(identity = 9,status = 0).CPU可以挂钩.再试一次.

整个系统锁定,反复重复此消息,并在几分钟后重新启动,或者我们必须手动重启.我们使用的是Android OS 2.1,更新1.

我知道其他一些人已经看到过这个bug,有时与音频有关.在我的情况下,它是由它引起的SharedBufferStack,所以我猜这是一个OpenGL问题.有没有人遇到这个,更好的修复它?或者有人知道发生了什么事SharedBufferStack来帮助我缩小范围吗?

android android-ndk nexus-one

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

我们需要依赖注入的接口吗?

我有一个ASP.NET核心应用程序.该应用程序有很少的辅助类可以完成一些工作.每个类都有不同的签名方法.我在网上看到很多.net核心示例,它们为每个类创建接口,然后使用DI框架注册类型.例如

 public interface IStorage
 {
    Task Download(string file);
 }

 public class Storage
 {
    public Task Download(string file)
    {
    }
 }

 public interface IOcr
 {
     Task Process();
 }

 public class Ocr:IOcr
 {
    public Task Process()
    {

    }
 }
Run Code Online (Sandbox Code Playgroud)

基本上每个接口只有一个类.然后我用DI注册这些类型

 services.AddScoped<IStorage, Storage>();
 services.AddScoped<IOcr,Ocr>();
Run Code Online (Sandbox Code Playgroud)

但是我可以在没有接口的情况下注册类型,这样接口看起来多余 例如

 services.AddScoped<Storage>();
 services.AddScoped<Ocr>();
Run Code Online (Sandbox Code Playgroud)

所以我真的需要接口吗?

asp.net-core-mvc .net-core coreclr asp.net-core

15
推荐指数
2
解决办法
8859
查看次数

一个输入字段上有多个ng模型?

我有一个表单和一个项目列表.我曾经ng-model="searchFor"适当地过滤掉项目列表(这部分工作正常),但我也想"提交"过滤掉的项目 - 这也需要ng-model="adding_item.name"输入字段(我认为).

你可以ng-models在一个输入字段上有多个?还有另一种方法吗?

forms angularjs angular-ngmodel

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

通过jQuery AJAX将字符串数组传递给C#WebMethod

我想通过jQuery(POST)将JavaScript字符串数组传递给C#WebMethod:

$.ajax({
    type: "POST", // GET or POST or PUT or DELETE verb          
    url: PageURL + 'ChangeColor', // Location of the service
    data: "{ 'OriginalColorHex': '" + JSON.stringify(clipartOriginalColorsHex) + "','ModifiedColorHex':'" + JSON.stringify(clipartModifiedColorsHex) +
          "','OriginalColorRGB': '" + JSON.stringify(clipartOriginalColorsRGB) + "','ModifiedColorRGB':'" + JSON.stringify(clipartModifiedColorsRGB) +
          "','fileName':'" + clipartFileName + "' }",
    contentType: "application/json; charset=utf-8", // Content type sent to server
    dataType: "json", // Expected data format from server
    processdata: true, // True or False      
    traditional: true,          
    success: function (result) { // On Successful …
Run Code Online (Sandbox Code Playgroud)

.net javascript c# ajax jquery

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

为什么我不能在属性中使用字符串插值?

我在C#6.0中编写单元测试(MSTest),我注意到编译器在属性中处理字符串插值的方式有些奇怪.

为什么这样做:

[TestCategory(nameof(MyClass) + "-UnitTest")]
Run Code Online (Sandbox Code Playgroud)

什么时候不这样?

[TestCategory($"{nameof(MyClass)}-UnitTest")]
Run Code Online (Sandbox Code Playgroud)

忽略这可能不是对我的测试进行分类的好方法; 我很好奇为什么编译器允许一个而不是另一个.

c# c#-6.0

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

解决错误"Microsoft.NETCore.App 1.0.0不支持框架.NETFramework,Version = v4.6.1"

我有一个使用net461引用运行的ASP.NET Core 1.0完整应用程序.现在我想添加另一个框架 - netcoreapp1.0.为此,我更新了我的project.json,如下所示:

{
   "userSecretsId":"",
   "version":"2.4.0-*",
   "buildOptions":{
      "emitEntryPoint":true,
      "preserveCompilationContext":true
   },
   "dependencies":{
      "Microsoft.ApplicationInsights.AspNetCore":"1.0.0",
      "Microsoft.AspNetCore.Authentication.Cookies":"1.0.0",
      "Microsoft.AspNetCore.Diagnostics":"1.0.0",
      "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore":"1.0.0",
      "Microsoft.AspNetCore.Identity":"1.0.0",
      "Microsoft.AspNetCore.Identity.EntityFrameworkCore":"1.0.0",
      "Microsoft.AspNetCore.Mvc":"1.0.0",
      "Microsoft.AspNetCore.Mvc.TagHelpers":"1.0.0",
      "Microsoft.AspNetCore.Server.IISIntegration":"1.0.0",
      "Microsoft.AspNetCore.Server.Kestrel":"1.0.0",
      "Microsoft.AspNetCore.StaticFiles":"1.0.0",
      "Microsoft.EntityFrameworkCore":"1.0.0",
      "Microsoft.EntityFrameworkCore.SqlServer":"1.0.0",
      "Microsoft.Extensions.Configuration.CommandLine":"1.0.0",
      "Microsoft.Extensions.Configuration.FileExtensions":"1.0.0",
      "Microsoft.Extensions.Configuration.Json":"1.0.0",
      "Microsoft.Extensions.Configuration.UserSecrets":"1.0.0",
      "Microsoft.Extensions.Logging":"1.0.0",
      "Microsoft.Extensions.Logging.Console":"1.0.0",
      "Microsoft.Extensions.Logging.Debug":"1.0.0",
      "Microsoft.VisualStudio.Web.BrowserLink.Loader":"14.0.0",
      "Microsoft.VisualStudio.Web.CodeGenerators.Mvc":"1.0.0-preview2-final"
   },
   "tools":{
      "BundlerMinifier.Core":"2.0.238",
      "Microsoft.AspNetCore.Razor.Tools":"1.0.0-preview2-final",
      "Microsoft.AspNetCore.Server.IISIntegration.Tools":"1.0.0-preview2-final",
      "Microsoft.Extensions.SecretManager.Tools":"1.0.0-preview2-final"
   },
   "commands":{
      "ef":"EntityFramework.Commands",
      "web":"Microsoft.AspNetCore.Server.Kestrel"
   },
   "frameworks":{
      "net461":{

      },
      "netcoreapp1.0":{
         "imports":[
            "dotnet5.6",
            "portable-net45+win8"
         ]
      }
   },
   "runtimes":{
      "win10-x64":{

      },
      "win81-x64":{

      },
      "win8-x64":{

      },
      "win7-x64":{

      }
   },
   "publishOptions":{
      "exclude":[
         "**.user",
         "**.vspscc",
         "wwwroot",
         "node_modules"
      ]
   },
   "scripts":{
      "prepublish":[
         "npm …
Run Code Online (Sandbox Code Playgroud)

.net .net-core project.json asp.net-core asp.net-core-1.0

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

JwtBearerMiddleware的自定义令牌位置

我们有一个调用客户端请求我们的系统没有将Bearer令牌放在标准位置('Authorization'标题)我想创建一个自定义处理程序,在正确的位置查找JWT.除了分支JwtBearerMiddleware实现是否有任何更清洁的方式我可以告诉中间件使用什么处理程序?

更简单的选择是通过在JWT中间件运行之前将JWT注入请求管道中的正确位置(请求头)来重写请求.但这似乎有点hacky.

.net asp.net-authorization jwt asp.net-core asp.net-core-middleware

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

如何在.NET Core app docker镜像中包含依赖项?

我正在尝试构建一个.NET Core app docker镜像.但我无法弄清楚我应该如何将项目的NuGet依赖项放入图像中.

为简单起见,我创建了一个.NET Core控制台应用程序:

using System;
using Newtonsoft.Json;

namespace ConsoleCoreTestApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine($"Hello World: {JsonConvert.False}");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它只有一个NuGet依赖Newtonsoft.Json.当我从Visual Studio运行应用程序时,一切正常.

但是,当我从项目创建Docker镜像并尝试从那里执行应用程序时,它无法找到依赖项:

# dotnet ConsoleCoreTestApp.dll
Error: assembly specified in the dependencies manifest was not found -- package: 'Newtonsoft.Json', version: '9.0.1', path: 'lib/netstandard1.0/Newtonsoft.Json.dll'
Run Code Online (Sandbox Code Playgroud)

这是预期的,因为Newtonsoft.Json.dllVisual Studio没有将其复制到输出文件夹.

这是Dockerfile我正在使用的:

FROM microsoft/dotnet:1.0.0-core
COPY bin/Debug /app
Run Code Online (Sandbox Code Playgroud)

是否有推荐的方法来处理这个问题?

我不想dotnet restore在容器内部运行(因为我不希望每次容器运行时都重新下载所有依赖项).

我想我可以添加一个RUN dotnet restore条目Dockerfile但是我不能再microsoft/dotnet:<version>-core用作基本图像了. …

c# visual-studio docker .net-core

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

无法使用 Drive API v3 更新 Google Drive 文件 - 资源正文包含不可直接写入的字段

我正在尝试使用 Google Drive API (v3) 更新 Google Drive 中的文档。

我已阅读此迁移指南: Google Drive API v3 迁移

并对其进行编码以创建一个新的空 File(),其中包含我想要更新的详细信息,然后使用该信息和文件 ID 调用execute()。但我仍然收到错误。谁能指出我做错了什么?多谢!!

错误:

{
    "code" : 403,
    "errors" : [{
        "domain" : "global",

        "message" : "The resource body includes fields which are not directly writable.",

        "reason" : "fieldNotWritable"
    }],
    "message" : "The resource body includes fields which are not directly writable."
}
Run Code Online (Sandbox Code Playgroud)

代码片段如下:

File newFileDetails = new File();        
FileList result = service2.files().list()
    .setPageSize(10)    
    .setFields("nextPageToken, files(id, name)")
    .execute();

List<File> files = result.getFiles();

if (files …
Run Code Online (Sandbox Code Playgroud)

java google-drive-api

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