C#.NET
文章平均质量分 87
lld951027
这个作者很懒,什么都没留下…
展开
-
.net core com对象使用分析
NET程序里面使用,比如以前在2003时代,想要写自己的基于IE的浏览器,就得手动加入与IWebBrowser2接口相关的DLL,这种方式是大家最常用的,也是最傻瓜化的,因此也没什么可解释的。正如前面所说的,只有实现了IDispatch,Dual类型的接口才支持被导出,而且面对不同版本的COM或许会生成不一样的导出DLL,比如说A机器上写代码时导入了一个Jet2.6版本的包装DLL,代码编译了拿到B机器上去运行,但是B机器上的Jet版本是2.8的,就可能会出现运行时错误。非标准的com,是不完全支持的。原创 2022-10-10 14:51:37 · 775 阅读 · 0 评论 -
.net core 跨平台UI框架 Avalonia
虽然可以在场景下,按需加载,但avalonia设计有个很头痛的问题是,我看他底层用的是自己的渲染器在web上渲染,并非是去转换为html/css代码,也就导致每个窗口都需要他的引擎加载,从而在设计上,很难去进行多窗口的跳转。由于设计的问题,如果要支持web的话,是不能多窗口的,意味着web只能在一个窗口上加载,这确实是个很头痛的问题,和正常的web设计思路很不一样。没想到,梦想还真的实现了,还是开源的,还跨了所有平台,这就是Avalonia,似乎挺新的,大致看了下,理念和设计都很前卫。......原创 2022-07-19 09:22:50 · 3094 阅读 · 0 评论 -
C# WPF 数据绑定同步
WPF里有几个关于后台数据绑定的核心对象,但有些时候其使用方式却容易让人迷惑,甚至混淆。现在就来总结梳理一下,DataContext、Itemsource、Command、Binding、INotifyPropertyChanged、ObservableCollection。首先从XAML上最简单的前台单向Binding开始:<TextBlock Grid.Column="0" Te...原创 2019-03-12 20:04:01 · 1794 阅读 · 0 评论 -
c# 原子读写锁
读写锁一般用于高性能应用场景,.net 好像有内置读写锁,还没去看具体实现。我个人是以原子锁方式实现,主要用于并发读,独占写,并以写优先。关于优先的设计,应该有几种策略,就是读优先还是写优先还是均衡。我以写优先的原因在于,如果此时存在有待写入的数据,那么认为之前的数据已经过时,获取之前的数据将没有任何意义。不过缺陷在于高并发读频繁写的场景下,可能会导致大量读取等待,一直写。个人认为不同的策略各具优...原创 2018-11-03 00:05:06 · 3018 阅读 · 0 评论 -
c# win32api 获取文件和文件夹图标
1、添加引用System.Drawing 2、拿到Icon之后要先toBitmap然后再save到memorystream中,不然ms写入到BitmapImage中是16色的using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Runti...原创 2018-09-17 22:09:33 · 1656 阅读 · 0 评论 -
c# wpf控件被覆盖问题
这算是个碰上的入门级的问题,但我当时选人的时候拿去做为最最最简单测试题,居然有些人连思路都没有,真的是让我服气。首先,说一下场景,相信都看过QQ或者是TIM登录界面,输入这个地方是两个控件,自定义的combox和textbox,而且很清晰可以看见,每个控件的border都是1px,鼠标放在任意一个上面,border都会变色。那么问题来了,既然这两个控件的border都是完整会变色的,那么两个控件的...原创 2018-06-19 12:47:25 · 5553 阅读 · 0 评论 -
EXE内嵌问题
好久没写过博客了,想写的东西实在太多太多,项目又多得让人头皮发麻。现在挤出时间来写一些吧,怕以后又忘了该写什么了。最近接到个需求,是关于EXE内嵌的,其实这能说的也不太多,毕竟就4个windows api,原理也很简单,就是把一个窗体设为另一个窗体的child,设置窗体样式,然后把要嵌入的窗体移动就去就好了。但实际中,让人捉摸不透的地方确实有不少,我看网上其他人写的,原理大多不知道,哪些地方会出问...原创 2018-06-19 12:27:54 · 619 阅读 · 1 评论 -
.NetCore Enyim.Caching Memcached源码分析
由于asp.net core中的session用着感觉并不顺手,所以从最开始就重新写了套缓存框架,底层可以用本地缓存、redis、memcached,当然作为缓存,我还是优先选择了memcached。本身用.net core的人就很少,坑的地方实在太多,像这种比较出名的框架都可能有bug,还得把源码弄下来看,文献就更少了。我用的是EnyimMemcachedCore,这是从.net上移植过来的,感原创 2017-10-13 15:16:36 · 1839 阅读 · 0 评论 -
.NetCore WebSocket
我喜欢.NET CORE 这个东西,其实不仅仅源于它性能很高,可以跨平台,还因为它的设计模式确实令人着迷。以前没.NET CORE 的时候,.NET用websocket必须跑在windows server 2012上,但我一般不会这么干,都把websocket架在nodejs的服务器上。这么分出来,麻烦肯定是麻烦的,而且js这东西,写复杂和几年后再看都是头疼的问题。那么,如果.NET CORE是以原创 2017-11-07 09:38:04 · 3836 阅读 · 0 评论 -
Chloe.ORM 实体批量生成
最近做的基本上都是做小网站,实在无聊,所以还是决定用这种小项目去踩踩坑,大概看了看,很多必须要用到的框架还是支持的,所以从这个项目开始,打算用.NET CORE 做,首先要解决的就是ORM上的问题。EF先不考虑,以前用了一段时间的EF,实在觉得难受,还是喜欢轻量级的东西。以前一直用DOS.ORM 感觉很顺手,可惜一直没出.NET CORE的版本,尝试多次之后,决定用Chloe.ORM对原创 2017-08-14 15:53:42 · 3852 阅读 · 0 评论 -
.NET CORE 2.0 zkweb.system.drawing Linux下内存BUG
1.zkweb.system.drawing linux下卡死 请先看这样一段代码: var image = new Bitmap(int_ImageWidth, letterHeight);...image = TwistImage(image, true, Next(1, 3), Next(4, 6));MemoryStream ms = new MemoryS...原创 2017-08-17 17:07:02 · 2116 阅读 · 6 评论 -
c# ManualResetEvent 解决socket连接超时问题
最近在做一个端口高速扫描器,在参考http://blog.csdn.net/hany3000/article/details/42422667 的博文时,发现一些问题,可能对读者造成误解,下面将对这个问题重新讲解class Scanner { private ManualResetEvent TimeoutObject = new ManualResetEv原创 2016-11-13 10:13:28 · 2856 阅读 · 0 评论