随笔分类 - .NET
摘要:``` public class BindingProxy : Freezable { #region Overrides of Freezable protected override Freezable CreateInstanceCore() { return new BindingProxy
阅读全文
摘要:本文在webapi的基础上进行后续的扩展,也可以实现不依赖项目类型的模式,只需要添加webapi对应的Nuget即可。 首先创建接口来识别动态API的实现类 public interface IAutoAPIService { } ControllerFeatureProvider 创建一个类继承C
阅读全文
摘要:生成的代码将和接口对应的参数、返回值一一对应,本文底层使用的工具为NSwag.exe,其他可替代的方案还有AutoSet.exe。 本文中生成的代码将在编译过程中自动编译,类似grpc生成代码的模式,如果使用AutoSet则需要手动引入代码。 另外也可以使用NSwag对应的vs插件(https://
阅读全文
摘要:使用TcpListener获取一个可用的端口 public static int GetRandomPort() { var listener = new TcpListener(IPAddress.Any, 0); listener.Start(); var port = ((IPEndPoint
阅读全文
摘要:软件可以使用社区版,限制行数未一万行 直接使用向导,默认配置执行即可 需要注意选择数据文件的时候如果不知道表空间在哪个文件中就选择所有的文件 最后导入的时候需要注意指定数据库服务名称 sqlldr userid=user/password@servicename control=C:\Users\A
阅读全文
摘要:创建项目 根据vs提供的模板生成给结构如下 至此grpc服务已经准备完成 grpcui grpcui需要使用到反射,需要手动安装nuget包【Grpc.AspNetCore.Server.Reflection】(不安装这个包会报错Failed to compute set of methods to
阅读全文
摘要:客户端缓存 - ResponseCacheAttribute 通过设置HTTP的响应头 Cache-Control 来完成页面存储到浏览器缓存中,如果请求在缓存有效期间就直接从浏览器缓存中取出数据。 只需要在接口上方添加ResponseCacheAttribute 特性即可设置客户端缓存。 Resp
阅读全文
摘要:之前的文章都介绍的是通过保存的方式来使用T4,或者是通过VS下的TextTransform.exe文件来编译T4(还需要考虑传参长度等各种问题)[T4模板引擎 参数调用](https://www.cnblogs.com/ives/p/8760661.html); 这些方法都比较繁琐,可以适用在不同的
阅读全文
摘要:通过Source Generators可以实现在编译期间注入代码,以此来优化运行时反射的效率。 另外也可以实现公共代码逻辑的注入,如WPF常用组件的Property.Fody库的通知效果(fody使用的是其他的技术模式); automapper也可以使用此模式来实现;自动添加GRPC接口。 Sour
阅读全文
摘要:需要安装ssh.net包 //ssh配置 var sshHost = "127.0.0.1"; var sshUser = "testUser"; var sshPwd = "testPassword"; var sshPort = 22; //数据库连接 var server = "192.168
阅读全文
摘要:页面 <ListView SizeChanged="ListView_SizeChanged" Loaded="ListView_Loaded" > <ListView.View> <GridView> <GridViewColumn Header="col1" Width="100" /> <Gr
阅读全文
摘要:客户端 private static void WaitData() { using (NamedPipeServerStream pipeServer = new NamedPipeServerStream("testpipe", PipeDirection.InOut, 1)) { try {
阅读全文
摘要:使用FileSystemWatcher 初始化传递要监听的目录, 在过滤中过滤文件(可以使用通配符) public class FileListenerServer { private FileSystemWatcher _watcher; public FileListenerServer(str
阅读全文
摘要:本文提供两种mapper方式 反射 表达式(性能比反射更高) 测试运行一百万次映射,硬编码大概在15毫秒,反射560毫秒,表达式150毫秒 public static class MapperHelper { /// <summary> /// 将数据映射到指定的对象中 /// </summary>
阅读全文
摘要:需要按照对应的nuget包: System.Management 获取cpu信息 ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances
阅读全文
摘要:startup文件中需要将websocket添加到管道 Configure(app => { //注意位置尽量在ocelot之前 app.UseWebSockets(); app.UseOcelot().Wait(); }) socket配置路由 { "DownstreamPathTemplate"
阅读全文
摘要:1. 创建对应通信的Hub类 using Microsoft.AspNetCore.SignalR; using System.Threading.Tasks; namespace SignalRChat.Hubs { public class ChatHub : Hub { public asyn
阅读全文
摘要:将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。 wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb s
阅读全文
摘要:安装 GraphQL 7.0.0 GraphQL.SystemTextJson 7.0.0 HelloWorld public class Program { public static async Task Main(string[] args) { var schema = Schema.For
阅读全文
摘要:方法来自官网 需要安装nuget包RestSharp.Newtonsoft.Json 另外调整创建RestClient的代码,将CamelCasePropertyNamesContractResolver参数调整为null client = new RestClient(); var setting
阅读全文