惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
博客园 - 【当耐特】
V
Visual Studio Blog
GbyAI
GbyAI
V
V2EX
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
A
About on SuperTechFans
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
量子位
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件

博客园 - 我的用户名

解决方案:包 Avalonia.Android 11.x.x 与 net8.0-android21.0 (.NETCoreApp,Version=v8.0) 不兼容。 包 Avalonia.Android11.x.x 支持: net8.0-android34.0 (.NETCoreApp,Version=v8.0) avalonia android TextBox多行模式下回车会关闭输入法问题 avalonia ComboBox 绑定后无法选中项的问题 Winform 使用label画分割线 VS-PostBuildEvent常用示例 bat脚本,请求管理员权限(转载) 在 .NET 中使用依赖注入(转载) 在 ASP.NET Core 中使用多个环境(转载) .NET Core 和 ASP.NET Core 中的日志记录(转载) RSA 从私钥中获取公钥 CorrelationId 文档 C# 简繁互转 JT808-2019协议,协议消息ID 分享一个dotnet自动发布Docker的脚本 VS常用设置 NuGet修改默认包保存的位置 winform下UserControl未标记为可序列化问题 AgileConfig服务端搭建 IE浏览器,各版本的请求头信息
.Net开发中不太常用的DLL及用法
我的用户名 · 2022-01-13 · via 博客园 - 我的用户名
GBK,GB2312编码
<ItemGroup>
  <PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
</ItemGroup>
// System.Text.Encoding.CodePages
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var Encoding = Encoding.GetEncoding("GBK");

获取操作系统

#if NET6_0_OR_GREATER
                        OperatingSystem.IsWindows();
#else
                        System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows);
#endif

OperatingSystem.IsBrowser();

.NET6忽略上传文件大小限制

builder.WebHost.UseKestrel(so =>
{
    so.Limits.MaxRequestBodySize = null;
});

SQLite 加密,使用微软驱动可以实现加密,

普通的可视化工具不能打开,可以使用https://github.com/sqlitebrowser/sqlitebrowser/releases/download/v3.12.2/DB.Browser.for.SQLite-3.12.2-win64.zip

dotnet remove package Microsoft.Data.Sqlite
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.bundle_e_sqlcipher

隐式引用命名空间

	<!--隐式引用命名空间-->
	<ItemGroup Condition="'$(Language)' == 'C#' AND ('$(ImplicitUsings)' == 'true' or '$(ImplicitUsings)' == 'enable')">
		<Using Include="System" />
		<Using Include="System.Linq" />
	</ItemGroup>

	<!--排除命名空间-->
	<ItemGroup>
		<Using Remove="Microsoft.AspNetCore.Builder" />
	</ItemGroup>

模型绑定

绑定源不仅仅只有这一种:

  • [FromQuery]:从Url的查询字符串中获取值。查询字符串就是Url中问号(?)后面拼接的参数
  • [FromRoute]:从路由数据中获取值。例如上例中的{id}
  • [FromForm]:从表单中获取值。
  • [FromBody]:从请求正文中获取值。
  • [FromHeader]:从请求标头中获取值。
  • [FromServices]:从DI容器中获取服务。相比其他源,它特殊在值不是来源于HTTP请求,而是DI容器。

建议大家在编写接口时,尽量显式指明绑定源。

 集合入参绑定时

[FromQuery] string[] ids

可以采用以下格式之一:

  • ids=1&ids=2
  • ids[0]=1&ids[1]=2
  • [0]=1&[1]=2
  • ids[a]=1&ids[b]=2&ids.index=a&ids.index=b
  • [a]=1&[b]=2&index=a&index=b

此外,表单还可以支持一种格式:ids[]=1&ids[]=2

[FromQuery] Dictionary<int, string> idNames

可以采用以下格式之一:

  • idNames[1]=j&idNames[2]=k,注意:方括号中的数字是字典的key
  • [1]=j&[2]=k
  • idNames[0].key=1&idNames[0].value=j&idNames[1].key=2&idNames[1].value=k,注意:方括号中的数字是索引,不是字典的key
  • [0].key=1&[0].value=j&[1].key=2&[1].value=k
docker下.net程序DateTime少8小时 
可以在Dockerfile中添加
#修改时区,默认基于FROM镜像的时区 
#Debian语法

ENV TZ=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone