小编Joh*_*ris的帖子

Roslyn for .Net 4.7.2

我很困惑..我试图安装有.NetStandard 2.0依赖一个NuGet包,看完后关于它的帖子,这是有道理的我,我可以运行依赖于.NetStandard 2.0任何图书馆使用.Net 4.7.2。不幸的是,在尝试安装nuget软件包时,它失败,并说它与.net 4.7.2不兼容。

我主要是尝试添加新的Roslyn库Microsft.CodeAnalysis,如果您查看它说支持.Net 4.7.2的依赖项,则该问题似乎源于其依赖的另一个dll Microsoft.CodeAnalysis.CSharp.Workspaces,因为它说它具有一个依赖项在.NetStandard 2.0上。(但实际上.Net 4.7.2可以运行.NetStandard 2.0)

在此处输入图片说明

有谁知道这是否可能,或者我是否需要转向.net核心框架才能支持这样的项目?

确实应该说它仅依赖于.NetStandard 2.0,但能够通过4.7.2或.Net Core安装到目标框架上

编辑:

使用Visual Studio 2015和C#6。

它是一个重新托管的Windows工作流设计器应用程序(用于C#编译/智能感知,用于输入设计器)

c# roslyn

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

对您上传文件的Web API端点进行单元测试

我有一个要进行单元测试的Web API端点。我有一个自定义SwaggerUploadFile属性,允许在招摇页面上的文件上传按钮。但是对于单元测试,我无法弄清楚如何传递文件。

对于单元测试,我使用:XunitMoqFluent断言

以下是带有端点的我的控制器:

public class MyAppController : ApiController
{
    private readonly IMyApp _myApp;

    public MyAppController(IMyApp myApp)
    {
         if (myApp == null) throw new ArgumentNullException(nameof(myApp));
         _myApp = myApp;
    }

    [HttpPost]
    [ResponseType(typeof(string))]
    [Route("api/myApp/UploadFile")]
    [SwaggerUploadFile("myFile", "Upload a .zip format file", Required = true, Type = "file")]
    public async Task<IHttpActionResult> UploadFile()
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        var provider = await Request.Content.ReadAsMultipartAsync();
        var bytes = await provider.Contents.First().ReadAsByteArrayAsync();
        try
        {
           var retVal = _myApp.CheckAndSaveByteStreamAsync(bytes).Result;
           if(retVal) …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing asp.net-web-api

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

在Windows工作流自定义活动中使用ICommand

我在WPF项目中使用了Relay Commands,但我目前正在使用Windows Workflows,而我正在使用自己的设计器进行自定义活动.如果按下,我想在我的设计上添加一个按钮来添加新字段.我花了几天时间在互联网上搜索,但似乎Windows工作流程已经打败了我.这就是我所拥有的,它不起作用,如果有人知道为什么请帮助.

[Designer(typeof(MyCustomActivityDesigner))]
public sealed class MyCustomActivity : AsyncCodeActivity
{
    public MyCustomActivity()
    {
        AddSpecificParameter = new DelegateCommand(AddParameter);
    }
    public DelegateCommand AddSpecificParameter { get; set; }

    public void AddParameter()
    {
        //add value to an obervable collection
    }
}
Run Code Online (Sandbox Code Playgroud)

中继命令实现:

public class DelegateCommand :ICommand
{
    //Parameterless constructor needed as windows workflow serialises it
    public DelegateCommand()
    { }

    private readonly Action _action;

    public DelegateCommand(Action action)
    {
        _action = action;
    }
    public void Execute(object parameter)
    {
        _action();
    }
    public bool CanExecute(object …
Run Code Online (Sandbox Code Playgroud)

c# xaml workflow-foundation workflow-foundation-4

5
推荐指数
0
解决办法
135
查看次数

当我不知道我使用什么类时,如何反序列化json数组?

我有一个json

var j = @"
    [{"Name":"John","Age":27},
     {"Name":"Mike","Age":30},
     {"Name":"Eric","Age":21}
    ]";
Run Code Online (Sandbox Code Playgroud)

和班级:

public class Worker
{
    public string Name{set;get;}
    public int Age{set;get;}
} 
Run Code Online (Sandbox Code Playgroud)

以及如何通过以下方式对其进行反序列化Newtonsoft.Json:

List<Worker> videogames = JsonConvert.DeserializeObject<List<Worker>>(j);
Run Code Online (Sandbox Code Playgroud)

但是,如果我不知道我想要反序列化哪个类并只有一个类型呢?

var worker = new Worker();
Type myType = worker.GetType();
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何反序列化这个json字符串?

c# json

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

将数组拆分为2D或两个数组

我有一个文本文件,我正在阅读以提取寄存器值及其包含的内容.

从阵列拉出的2条线是:(完整列表大约700)

0x0003 = 0x0069

0x0007 = 0x0078

我想把它们分成两个数组或一个二维数组,无论什么是最好的(我是新手使用数组)

我的目标是搜索数组例如寄存器3,找到索引然后从第二个数组中提取相应的索引信息.

这是我的代码到目前为止,

  List<string> registerFullList1 = new List<string>();

     for (int i = 0; i < 2000; i++) 
       {
          string[] importStringArray1 = new string[2000];
          importStringArray1[i] = importStringArray1[i] + objReader.ReadLine() + "\r\n";
          //code to extract register info from string array
          string listsplit1 = Regex.Match(importStringArray1[i], @"(?<= 0x)[0-9A-Fa-z\s\=]{13}").Value; 


          if (listsplit1.Contains("0x")) //code to add to list only registers and ignore empty lines
            {
              registerFullList1.Add(Convert.ToString(listsplit1));
            }

                }

  int[] index = new int[2000]; // is there a way here …
Run Code Online (Sandbox Code Playgroud)

c#

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

Math.Sqrt(2/3)返回0

我真的很困惑为什么会发生这种情况,我的代码:

double x = Math.Sqrt(2/3);
MessageBox.Show(x.ToString());
Run Code Online (Sandbox Code Playgroud)

显示0.答案是

0.8164,我知道我也必须使用Math.Round来解决这个问题,但目前我的问题是0

c#

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

如果超过某个值,如何更改文本框中的字体

如果超过5,我想将文本框中文本的颜色更改为蓝色.

最简单的方法是什么?

我以为会有一个简单的textbox.FontColor = Blue; 但是我找不到这样的东西

c# wpf xaml datatrigger

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