摘要:
值类型可以直接传值。 复杂类型只能ref传址或者用Variant包装,C#用object接收再解包。 传址就要注意内存分配位置了。 VB6调用C#对象,那就不能预定义收接对象的长度。 VB6传值就容易一些, 用Variant包装 VB6Project下载 using System; using Sy 阅读全文
摘要:
需求:将高频且耗时,且数据基本没变化的查询结果,用缓存提升性能。 实现:继承MemoryCache,重载部分方法,在数据库中持久化缓存数据。 本文使用了两级缓存,不用考虑缓存加载。服务重启,读不到内存缓存,会从数据库读取一次。 //泛型类,内部进行二进制序列化与反序列化 using System; 阅读全文
摘要:
对于一些dbnull对象,== null 通常不是正确的用法。 所有判空操作建议改成 is null 。 阅读全文
摘要:
mstsc /w:1660 /h:1016 阅读全文
摘要:
.net 4.8支持的最低操作系统版本:客户端:Windows 7 SP1服务器:Windows Server 2008 R2 SP1 直接安装通常会提示: 安装未成功,已处理证书链,但是在不受信任提供程序信任的根证书中终止按以下安装步骤操作:1,安装这个证书: MicrosoftRootCerti 阅读全文
摘要:
//兼容老旧系统的方法。反射之外的选择 object objClsID = Activator.CreateInstance(Type.GetTypeFromCLSID(Guid.Parse("ClsID"))); //ActiveX object objProgID = Activator.Cre 阅读全文
摘要:
错误 429:ActiveX部件不能创建对象。 原因:对象名称(ProgID)错误; 或对象文件不存在; 或对象末注册ClassID(regsvr32 / regasm)。 错误 80004003: 自动化错误(Automation error)。 原因:对象不符合COM规范, 或对象初始化错误(检 阅读全文
摘要:
在SQL Server中执行代码时,代码会生成一个哈希值,并使用哈希值确认计划的重用,如果执行一个存储过程,存储过程的名称会生成一个哈希值,后续的每一个存储过程调用不管使用的参数是否与之前的相同,都会重用该计划。 如果运行除了存储过程以外的同样的代码啊(也就是即席T-SQL),包含代码中所有文字的整 阅读全文