董川民 发布的文章

.NET Core使用C#实现对接Java

与第三方对接最麻烦的是语言不同,因语言不同内置实现相关标准加密算法还是略微有所差异。

对接单点登录场景再寻常不过,由于时间紧迫且对接方使用Java,所以留给我对接开发和联调的时间本就不多,于是乎,在熬夜发版后,继而开始提前研究对接方所提供的加密方式大致处理。

数据对接加密算法采用RSA SHA1 1024位、同时呢,在Java中对于1024或其他位数,对密文有长度限制,所以利用了分段加密,密文长度为117,解密长度为128,如此通用处理方式,网上肯定是可以搜索到的,截取加密部分片段,如下:

阅读剩余部分

.NET 6 中的 TimeOnly 类型

说了.NET 6 中的DateOnly类型,再说说TimeOnly类型

TimeOnly 结构体用于表示与日期无关的时间。例如,想象一下创建一个闹钟应用程序,让用户创建一个重复发生的闹钟。在这种情况下,我们想要存储闹钟应该响起的时间,但日期无关紧要。

TimeOnly 类型有几个构造函数重载。我希望大多数开发人员使用的更常见的允许我们创建一个日期,接受时间的小时和分钟,小时,分钟和秒,或小时,分钟,秒和毫秒。

public TimeOnly(int hour, int minute)
public TimeOnly(int hour, int minute, int second)
public TimeOnly(int hour, int minute, int second, int millisecond)

阅读剩余部分

.NET 6 中的 DateOnly 类型

在.NET 6中,引入了这种期待已久的类型作为核心库的一部分。DateOnly允许开发人员表示 DateTime 的日期部分。这种新类型是结构体(值类型),可以在您的代码独立处理日期概念时使用。这种类型都可以在 System 命名空间中找到。使用这些新类型可能与数据库允许表示类似数据的方式很好地保持一致。具体来说,这些类型与 SQL Server 日期和时间数据类型非常吻合。

这些类型对于它们所代表的内容几乎是不言自明的。当我们需要表示没有时间组件的日期时,我们可以使用 DateOnly。例如,也许我们在应用程序中代表某人的出生日期。在这种情况下,我们很少需要使用 DateTime 的时间部分,标准的解决方案是将时间设置为 00:00:00.000。使用 DateOnly,我们可以更明确地说明我们的意图。

我们可以在 DateOnly 上构造一个实例,将年、月和日作为参数传递:

var date = new DateOnly(2020, 04, 20);

这将创建一个表示 2020 年 4 月 20 日的 DateOnly。在内部,DateOnly 结构使用一个整数来跟踪有效范围为 0(映射到 0001 年 1 月 1 日到 3,652,058,映射到 9999 年 12 月 31 日)的日数。

阅读剩余部分

.NET 6新特性《最小Web API》试用

如果你使用过其他一些轻量级Web框架,比如Node.JS,你就会知道,创建具有最小依赖项的HTTP API是多么简单:

var express = require('express')
var app = express()
app.get('/', function (req, res) {
   res.send('hello My IO!')
})
app.listen(3000)

而现在,使用.NET 6,我们也可以在ASP.NET Core中创建仅包括最少文件、功能和依赖项的最小Web API。

要实现上面相同的功能,只需要三行代码:

var app = WebApplication.Create(args);
app.MapGet("/", () => "hello My IO!");
app.Run();

阅读剩余部分