小编Sup*_*JMN的帖子

使用Reactive Extensions进行数据库轮询

我必须及时查询数据库以了解遗留系统的状态.我想过围绕一个查询包装Observable,但我不知道正确的方法.

基本上,它将是每5秒相同的查询.但我担心我将不得不面对这些问题:

  • 如果执行查询需要10秒钟怎么办?如果仍在处理上一个查询,我不想执行任何新查询.
  • 此外,应该有一个超时.如果当前查询在例如20秒之后未执行,则应记录信息性消息并应发送新的尝试(相同的查询).

额外细节:

  • 查询只是一个SELECT返回带有状态代码列表的数据集(工作,出错).
  • Observable序列将始终采用从查询接收的最新数据,例如Switch扩展方法.
  • 我想将数据库查询(lenghty操作)包装成一个Task,但我不确定它是否是最好的选择.

我几乎可以确定查询应该在另一个线程中执行,但是我不知道observable应该是什么样子的,看过Lee Campbell的Rx简介.

.net c# reactive-programming system.reactive

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

在ASP.NET Core 2.0中找不到AddJsonOptions

我正在将我的ASP.NET 1.1项目迁移到2.0:

Setup类中,在Configure方法覆盖下我有:

services.AddMvc()
    .AddJsonOptions(options =>
        options.SerializerSettings.Converters.Add(new StringEnumConverter())
    );
Run Code Online (Sandbox Code Playgroud)

AddJsonOptions方法缺失.

这是怎么回事?我怎样才能获得相同的功能?

.net c# asp.net asp.net-core

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

我应该为创建和更新使用不同的 DTO 吗?(CRUD)

我正在设计一个 Web API,对 Person 实体执行通常的 CRUD 操作。

问题是我不知道如何设计 DTO。

实体如下:

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

我已经确定 DTO 应该拥有相同的成员:

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

这对于 Update 操作是有意义的,但是 Create 呢?Id 是由 Create 操作 ifself 创建的,因此在 DTO 中使用 Id 不符合语义。

我应该创建 2 …

.net c# entity-framework dto

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

如何在 C# 应用程序中生成 SSH 2 RSA 密钥?

我想编写一个应用程序来生成 SSH 2 RSA 公钥和私钥。

我想获得 PuTTY 密钥生成器可以生成的格式的密钥。

在此处输入图片说明

在 ChilKat 的帮助下,我也可以生成公钥和私钥,但我不知道如何获得这种格式。

是否有任何示例可以获取该格式的密钥,或者我错过了什么?

非常感谢!

.net c# ssh putty rsa

8
推荐指数
2
解决办法
4928
查看次数

AutoMapper ConstructServicesUsing 被忽略

我有一个 Person 和一个 PersonViewModel。我从 Person => PersonViewModel 创建了一个地图。问题是PersonViewModel 的唯一构造函数需要一个参数(它有一个我想要注入的依赖项),而 AutoMapper 正在抱怨,因为它说它需要一个无参数构造函数。

为了修复它,我使用了 ConstructServicesUsing 方法,但我没有成功:(

为了说明这个情况,我创建了一个测试让您看看我在做什么。这很简单:

    [TestMethod]
    public void TestConstructServicesUsing()
    {
        Mapper.Initialize(configuration =>
        {
            configuration.ConstructServicesUsing(FactoryMethod);
            configuration.CreateMap<Person, PersonViewModel>();
        });

        Mapper.AssertConfigurationIsValid();

        var person = new Person();
        var personViewModel = Mapper.Map<Person, PersonViewModel>(person);
    }

    private object FactoryMethod(Type type)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

其余的代码是类和接口定义。它们几乎是空的。

public class SomeyDependency : ISomeDependency
{
}

public class PersonViewModel
{
    private readonly ISomeDependency service;

    public PersonViewModel(ISomeDependency service)
    {
        this.service = service;
    }

    public string Name { get; …
Run Code Online (Sandbox Code Playgroud)

automapper

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

从字符串创建属性选择器表达式

我正在尝试从字符串生成"属性选择器".

让我用一个真实的例子来解释一下自己:

我们有一个Person类,其中包含Name(string)属性.

我可以像这个propertySelector一样手动创建一个"属性选择器":

Expression<Func<Person, string>> propertySelector = x => x.Name;
Run Code Online (Sandbox Code Playgroud)

但我想用我的方法获得相同的属性选择器.

var propertySelector = CreatePropertySelectorExpression<Person, string>("Name");
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的是:

public static Expression<Func<TIn, TOut>> CreatePropertySelectorExpression<TIn, TOut>(string path)
{
    Expression exp = Expression.Parameter(typeof(TIn), "x");
    foreach (var property in path.Split('.'))
    {
        exp = Expression.PropertyOrField(exp, property);
    }
    return exp;
}
Run Code Online (Sandbox Code Playgroud)

但是......我得到了无效的施法错误!

无法将类型'System.Linq.Expressions.Expression'隐式转换为'System.Linq.Expressions.Expression>'.存在显式转换(您是否错过了演员?)

我对表达式很新,我不知道如何继续:(

c# linq reflection lambda

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

通用Windows应用程序中的阴影效果

我正在寻找一种简单的方法来添加像WPF一样的Drop Shadow效果,仅使用XAML.我想将它应用于ListView中的元素.

我没有找到比这样的实验更多的东西:https: //blogs.windows.com/buildingapps/2016/09/12/creating-beautiful-effects-for-uwp/#BIRDSebvmJwAFY5Y.97

它似乎需要很多代码支持.我想避免它. 

.net c# xaml uwp

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

如何使用.NET Core绘制?

有没有办法用.NET Core在屏幕上绘制和显示图形?我想创建一个在多个平台上运行的图形应用程序.

.net c# graphics drawing .net-core

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

让 Refit 自动在查询字符串中提供参数

我正在使用 Refit 生成 Web 服务的客户端。

我的Web API的所有URL都是这样的:

https://service.com/api/v3/datasetsapi_key=XXXXXXX

如您所见,API 密钥是在查询字符串而不是标头中指定的。

我希望 Refit 自动提供我的访问令牌作为查询字符串的一部分,而无需在我的服务界面中指定它。

我查看了文档,但还没有找到一种方法。

.net c# refit

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

如何在C#中使用Either类型?

Zoran Horvat建议使用Either类型来避免空检查,并且在操作执行过程中不要忘记处理问题Either在函数式编程中很常见。

为了说明它的用法,卓然展示了一个类似的例子:

void Main()
{
    var result = Operation();
    
    var str = result
        .MapLeft(failure => $"An error has ocurred {failure}")
        .Reduce(resource => resource.Data);
        
    Console.WriteLine(str);
}

Either<Failed, Resource> Operation()
{
    return new Right<Failed, Resource>(new Resource("Success"));
}

class Failed { }

class NotFound : Failed { }

class Resource
{
    public string Data { get; }

    public Resource(string data)
    {
        this.Data = data;
    }
}

public abstract class Either<TLeft, TRight>
{
    public abstract Either<TNewLeft, …
Run Code Online (Sandbox Code Playgroud)

.net c# oop defensive-programming

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