
c#/Net
c#/Net
秋雨雁南飞
这个作者很懒,什么都没留下…
展开
-
IIS隐藏敏感数据信息
隐藏敏感信息原创 2023-02-03 12:46:43 · 1153 阅读 · 0 评论 -
C# 集合多字段分组排坑
问题:改造集合分组:改造前: var list = new List<Student>(); list.Add(new Student(1, "陈兆杰", 10, "班级一")); list.Add(new Student(2, "陈志杰", 10, "班级一")); list.Add(new Student(3, "废纸杰拉德", 10, "班级二")); list.Add(new S原创 2022-05-27 23:39:12 · 1940 阅读 · 2 评论 -
DocFX自动生成文档
环境:net 4.5window 10DocFX下载一、介绍目录结构:1、初始化docfx init -q会生成docfx_project 目录2、执行docfx docfx_project/docfx.jsondocfx_project 目录生成_site 目录3、运行DocFXdocfx serve docfx_project/_site # 默认端口8080,修改数据不会刷新docfx serve docfx...原创 2022-01-27 17:09:11 · 719 阅读 · 0 评论 -
c# 线程同步
线程同步原创 2022-01-17 02:13:11 · 1481 阅读 · 0 评论 -
c# Monitor
Monitor主要方法TryEnter、Enter、Exitlock关键字基于Monitor.Enter,Monitor.Exit 实现 static void Main(string[] args) { for (int j = 0; j < 10; j++) { int k = j; Task.Run(() =>原创 2022-01-17 15:43:15 · 1569 阅读 · 0 评论 -
C# Delegate与Func、Action 互转
private delegate int Calc(int x, int y); static void Main(string[] args){ Calc c1 = Add; Func<int, int, int> f3 = Add; Console.WriteLine("c1、f3 引用是否相同:" + Delegate.ReferenceEquals(c1.Target, f3.Target))..原创 2022-01-16 17:11:15 · 1585 阅读 · 0 评论 -
c# 分布式锁
环境:net4.5vs2022模拟商品抢购,单个服务器,可以通过本地服务器缓存或数据库锁就可以处理,分布式服务器的话,想要实现进程与进程之间实现同步锁,可以使用redis、数据库锁、ZooKeeper来实现。单体服务器:可以通过HttpRuntime.Cache缓存来简单实现public class RuntimeCacheLock { private static System.Web.Caching.Cache cache = HttpRun原创 2022-01-13 12:39:16 · 2415 阅读 · 0 评论 -
c# 获取异常报错行号
仅适用于debug模式: public static int GetLineNum() { System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true); return st.GetFrame(0).GetFileLineNumber(); } static void Main(str原创 2022-01-12 10:40:10 · 2722 阅读 · 0 评论 -
C#修改匿名类
public static class AnonymousObjectMutator { private const BindingFlags FieldFlags = BindingFlags.NonPublic | BindingFlags.Instance; private static readonly string[] BackingFieldFormats = { "<{0}>i__Field", "<{0}>" }; ..原创 2021-12-22 22:44:34 · 588 阅读 · 0 评论 -
C#桌面截图
代码:class Program { const int ENUM_CURRENT_SETTINGS = -1; static void Main(string[] args) { foreach (Screen screen in Screen.AllScreens) { DEVMODE dm = new DEVMODE(); dm.原创 2021-12-12 16:46:19 · 455 阅读 · 0 评论 -
C# Json序列化、反序列化匿名类型、动态类型dynamic
包:Newtonsoft.Json 13.0.0.0环境:Net 4.5Program:Console.WriteLine("**************匿名类 序列化、反序列化*****************"); /* 匿名类 */ { var person = new { Name = "GongHui", Age = 28, Sex = "男" }; string js原创 2021-09-21 22:29:39 · 4057 阅读 · 0 评论 -
C# JSON、XML互转
包:Newtonsoft.Json 13.0.0.0环境:Net 4.5program:string json = @"{ '@Id': 1, 'Email': 'james@example.com', 'Active': true, 'CreatedDate': '2013-01-20T00:00:00Z', 'Roles': [ 'User', 'Admin' ], 'Team': { '@Id': 2, 'Name': 'S原创 2021-09-21 22:11:47 · 2007 阅读 · 0 评论 -
C# 代码注释文档
XML标记 描述 <c> 将文本设置为类似代码的字体 <code> 将一行或多行源代码或程序输出设置为某种字体 <example> 表示所含的是示例 <exception> 标识方法可能引发的异常 <include> 包括来自外部文件的XML <list> 创建列表或表 <para> 用于将结构添加到文本中 <param> 描.原创 2021-09-08 17:08:24 · 395 阅读 · 0 评论 -
C# 生成 XML 文档时出错。使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型
报错:生成 XML 文档时出错。使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型原因:c# xml object类型序列化失败解决:对于obejct属性、字段需要指定通过Xml特性(XmlElement、XmlArrayItem等等)指定类型实体:成员指定类型 [XmlElement("Name", Type = typeof(ClassType))][Serializable] [XmlRoot(ElementName = "RO原创 2021-08-10 13:12:29 · 2744 阅读 · 0 评论 -
WebService测试工具
1、WcfClientTest参考:https://blog.csdn.net/czjnoe/article/details/1077974472、SoapUI下载地址:https://www.soapui.org/downloads/latest-release/原创 2021-07-30 16:25:36 · 2826 阅读 · 0 评论 -
C# Xml 完整(双标签)序列化
工作中遇到接口对接需求:<?xml version="1.0"?><Student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Id>1</Id> <Name /> <Age>26</Age></Student>需要将上面的XML文原创 2021-07-29 23:01:25 · 1330 阅读 · 2 评论 -
c# 剪贴板Clipboard
微软文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.clipboard?view=netframework-4.5&f1url=%3FappId%3DDev14IDEF1%26l%3DZH-CN%26k%3Dk(System.Windows.Forms.Clipboard);k(TargetFrameworkMoniker-.NETFramework,Version%253Dv4.5);k(DevLang-csh原创 2021-07-24 01:02:46 · 1471 阅读 · 0 评论 -
Newtonsoft 序列化、反序列
环境:Net 4.5Newtonsoft.Json13.0.0.0场景:{ "Age": "25", "Name": "czj"}客户给我上面这样的json串,让反序列化后,修改对象后,再需要序列化输出如下格式:{ "年龄": "28", "姓名": "qwe"}添加特性:public class CrJsonAttribute : Attribute { /// <summary> /// 序列...原创 2021-07-22 21:12:03 · 1202 阅读 · 0 评论 -
c# 清除委托
方法一、方法二、原创 2021-07-04 16:49:48 · 2031 阅读 · 0 评论 -
VS2019 远程调试工具
下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/需要在远程电脑安装VS_RemoteTools.exe 工具,启动后。打开vs2019,附加进程:原创 2021-07-03 21:48:41 · 2412 阅读 · 0 评论 -
Json时间格式转换
CustomDateTimeConverter:public class CustomDateTimeConverter : DateTimeConverterBase { public string _dateFormat { get; set; } = "yyyy-MM-dd"; public CustomDateTimeConverter(string dateFormat) { _dateFormat = date原创 2021-06-29 13:36:54 · 617 阅读 · 0 评论 -
Json动态序列化解决方案
环境:net 4.5Newtonsoft.Json13.0.0.0想要实现效果:想要序列化User实体,但是User实体中的属性有不想要完全显示,当然有人要说了,可以使用忽略(JsonIgnore)特性。我想要支持的需求是,某些属性,该场景下想要显示,在另外一个场景下,不要显示,动态显示属性。model: [Serializable] public class User { public int ID { get; set; }.原创 2021-06-29 13:30:51 · 723 阅读 · 0 评论 -
net CLR内存分配
一原创 2021-06-20 13:35:47 · 341 阅读 · 0 评论 -
C++、C#类型对应关系
//C++中的DLL函数原型为 //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char* 变量名2) //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 变量名1, char* 变量名2) //C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多..原创 2021-06-10 16:47:16 · 1257 阅读 · 0 评论 -
VS项目版本编译自动更改
版本规则:主版本号.子版本号.编译版本号.修正版本号AssemblyInfo:修改后:重新编译项目:编译版本号是自2000年1月1日以来的天数,而修正版本号会是当天自午夜零点以来的秒数除以2所得的值。...原创 2021-06-10 15:48:38 · 594 阅读 · 0 评论 -
Net6.0 Sdk和Runtime
https://dotnet.microsoft.com/download/dotnet/6.0原创 2021-06-10 11:11:17 · 2062 阅读 · 0 评论 -
C# 判断当前管理员权限
program:using System;using System.Security.Principal;static void Main(string[] args) { WindowsIdentity id = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(id); Console.Write原创 2021-06-09 16:33:56 · 670 阅读 · 0 评论 -
C# 比较两个 byte[] 的相等性
program: [DllImport("msvcrt.dll", CallingConvention = CallingConvention.Cdecl)] static extern int memcmp(byte[] b1, byte[] b2, long count); /// <summary> /// 比较数组 /// </summary> /// <param name="b1原创 2021-06-09 12:39:09 · 3210 阅读 · 0 评论 -
C# 枚举位域Flags
Flags特性 [Flags] public enum AuthorityEnums { Authority_01 = 1, //权限1 Authority_02 = 2, //权限2 Authority_03 = 4, //权限3 Authority_04 = 8 //权限4 }原创 2021-06-04 12:42:47 · 397 阅读 · 0 评论 -
c# Attribute之CallerMemberName、CallerFilePath、CallerLineNumber 获取方法及代码行号
CallerMemberName、CallerFilePath、CallerLineNumber特性CallerMemberName:调用方法的名称CallerFilePath:调用方法的所在的类文件绝对地址CallerLineNumber:调用方法所在行号可以用来记录日志,能够获取记录日志所在的行号和方法及调用文件public class LogHelp { public static void Info( string mess.原创 2021-02-24 20:16:48 · 857 阅读 · 0 评论 -
委托获取或赋值属性值
新建User类:public class User { public int Id { get; set; } public string Name { get; set; } }实例: User user = new User(); Action<User, string> setAction = (Action<User, string>)Delegate.CreateDelegate(typeof(Action原创 2021-01-31 23:32:03 · 339 阅读 · 0 评论 -
.NET Core CLI 运行NetCore程序
Net Core CLI 参考 :https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet一、项目所在目录运行1.进入项目文件.csproj所在的目录2 打开 cmd ,cd 到该目录:dotnet run: 直接运行dotnet run //直接运行net core 程序,默认以 launchSettings.json 文件中配置url启动 dotnet run --urls: 指定端口号...原创 2021-01-28 23:06:31 · 1406 阅读 · 1 评论 -
Nginx负载WebApi
一、安装Nginx下载地址:http://nginx.org/en/download.html安装教程:https://www.cnblogs.com/jiangwangxiang/p/8481661.html二、WebApi创建ApiControllerpublic class FirstController : ApiController { [HttpGet] public string Show() { .原创 2021-01-22 14:53:53 · 1971 阅读 · 0 评论 -
Blazor IIS部署打不开页面
问题:页面处于loading....安装重写URL模块:https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads原创 2021-01-14 14:37:14 · 1132 阅读 · 1 评论 -
安装dotnet-ef
打开cmd:1、安装 dotnet 全局工具dotnet tool install dotnetsay --tool-path c:\dotnet-tools2、安装 dotnet-ef 工具dotnet tool update --global dotnet-ef验证:dotnet ef -h原创 2021-01-08 15:30:41 · 1005 阅读 · 0 评论 -
wcf 远程服务器返回了意外响应: (413) Request Entity Too Large。
问题:调用 WCF返回错误远程服务器返回了意外响应: (413) Request Entity Too Large。解决:在 config 配置文件,设置wcf接收的消息的最大大小 2147483647(单位为字节),默认大小为65536服务端配置文件添加节点 :<bindings> <basicHttpBinding> <binding maxBufferSize="2147483647" maxReceivedMessageS.原创 2020-12-28 17:31:23 · 799 阅读 · 0 评论 -
c#DataTable 查重
方法一:ToTable方法public static bool IsDistinct(DataTable dt, params string[] columns) { DataView dv = new DataView(dt); var distinctTable = dv.ToTable(true, columns); if (!distinctTable.Rows.Count.Equals(dt.Rows.C原创 2020-12-15 23:36:53 · 1792 阅读 · 0 评论 -
Oracle获取序列值
一、Sql直接读取select 'SeqName'.NEXTVAL from dual二、Func函数create or replace function GetSequenceFunc( seqName in char)return intAS sqlstr varchar(100); seqValue number(20);begin sqlstr := 'select '||seqName||'.nextval from dual原创 2020-11-29 22:22:08 · 4028 阅读 · 0 评论 -
c#之IEnumerator和IEnumerable
创建实体Studentpublic class Student : IEnumerable<Student> { public static List<Student> stus = new List<Student>(); public Student() { } public int Id { get; set; } public string Name {原创 2020-11-26 22:06:20 · 338 阅读 · 0 评论 -
c#之ThreadStatic特性
一、ThreadStaticAttribute指示静态字段的值对于每个线程都是唯一的。用ThreadStaticAttribute标记的static字段不在线程之间共享。每个执行线程都有单独的字段实例,并且独立地设置及获取该字段的值。如果在不同的线程中访问该字段,则该字段将包含不同的值二、代码示例先来看看不标记特性: private static Dictionary<string, string> dic = new Dictionary<string, ...原创 2020-11-23 22:49:18 · 1784 阅读 · 0 评论