.NET
kikay
葵花在手,天下我有!
展开
-
强类型DataSet与普通弱类型DataSet
DataSet属于弱类型,这意味着无论何时从 DataSet 中检索值,值都以 System.Object 的形式返回,你需要对这种值进行转换。不幸的是,失败不是在编译时发生,而是在运行时发生.DataReader和普通的DataSet是弱类型对象,因为它们的schema是被用来填充它们的数据库查询返回的字段来定义的。要访问弱类型DataTable中的一个特定字段,我们需要用这样的句法:D转载 2013-04-23 17:06:00 · 1368 阅读 · 0 评论 -
C#调用Win32 C++动态链接库那些事
利用C#设计前端显示界面,C++完成后台算法和功能,是现在比较流行的一种桌面软件研发搭配。通常的做法就是C++封装成动态链接库接口,供C#来调用。这种做法最麻烦的是两者之间数据传递的问题,因为C#和C++之间的数据类型是不一样的,而且在实际应用中还存在一些未知的坑。原创 2017-09-08 10:20:23 · 1706 阅读 · 1 评论 -
C++通过Callback向C#传递数据
现在比较流行C#与C++融合:C#做GUI,开发效率高,C++做运算,运行效率高,二者兼得。但是C++与C#必然存在数据交互,C#与C++dll的数据交互从来都是一个让人头疼的问题。转载 2017-05-31 11:03:45 · 3149 阅读 · 0 评论 -
ASP.NET跨平台实践:无需安装Mono的Jexus“独立版”
在Linux上运行ASP.NET网站或WebApi的传统步骤是,先安装libgdiplus,再安装mono,然后安装Jexus。在这个过程中,虽然安装Jexus是挺简便的一件事,但是安装mono就相对的比较费时费力了。 现在的情况不同了,为了克服安装 Mono 的繁琐,简化 ASP.NET WEB 应用在Linux操作系统上的部署过程,我们为Jexus 5.8.1制作了一款无需安装mono就能使用转载 2016-05-20 11:24:03 · 810 阅读 · 0 评论 -
C#嵌入dll到资源释放的问题
有些程序的时候,可能调用外部的dll,这个时候提供给客户的时候,可能经常不小心丢失这些dll,因此可以考虑将这些dll嵌入到资源中,启动的时候进行释放。对于托管的dll,可以用打包软件合成一个exe(例如利用Imerge),但是对于一些用C++等写的非托管的dll,就比较麻烦。在这种情况下,可以考虑本文介绍的方法。 1、将需要用到的dll文件嵌入资源文件中。(1)将需要用到的dll文件拷贝到工原创 2015-03-22 11:50:39 · 36636 阅读 · 3 评论 -
BackgroundWork异步处理
在.net框架下,实现异步处理的方式主要有三种。一是采用beginXXX和endXXX来实现,一种利用多线程Thread实现。另外,利用BackgroundWork组件来实现。下面对BackgroundWork组件的使用进行一下研究。 BackgroundWork是基于事件驱动的,所以使用起来要比APM方便使用过的应该知道,我们只需要只需要绑定3个事件,就能很轻松的完成复杂的异步原创 2013-11-21 15:02:25 · 2577 阅读 · 0 评论 -
backgroundworker类使用心得
前段时间用到了backgroundworker类做了一个简单的读取后台数据到界面datagridview中的程序,今天又用到了这个类,碰到了些问题,这里总结下:概述:BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作转载 2014-06-04 10:43:37 · 1422 阅读 · 0 评论 -
c# 中引用对象如何创建副本
c#中的类的实例都是引用类型,用简单的赋值运算符“=”无法创建它的副本,比如:classa a=new classa();classa b=a;a和b指向的是同一块内存。所以与我们的本意不符。我们的本意是想重新开辟内存以保存a的值。这时候可以使用object类的一个protect 方法 MemberwiseClone();由于是保护的方法,所以你要给自己的类创建一个cl转载 2014-03-13 14:05:42 · 3820 阅读 · 0 评论 -
C#和C++结构体Socket通信
最近在用C#做一个项目的时候,Socket发送消息的时候遇到了服务端需要接收C++结构体的二进制数据流,这个时候就需要用C#仿照C++的结构体做出一个结构来,然后将其转换成二进制流进行发送,之后将响应消息的二进制数据流转换成C#结构。 1、仿照C++结构体写出C#的结构 using System.Runtime.InteropServices; [Serializab转载 2014-02-08 10:53:58 · 933 阅读 · 1 评论 -
C#编写QQ接口软件 QQ通信协议
QQ的Http协议可能会把很多人迷惑了,其实通讯端口是8000而不是我们想的80,这里也可以看出腾讯的谨慎和保守,下面介绍一下具体的分析。1、找寻支持QQ HTTP协议的服务器。很多人会认为QQ的HTTP服务器是基于80口进行通信的(如:218.17.209.23:80),其实不然,正真基于HTTP的服务器应该是:http://tqq.tencent.com转载 2014-01-21 09:02:41 · 6003 阅读 · 3 评论 -
c# XML序列化与反序列化
序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAttribute("AGE")] public int Age { set; get; }转载 2014-01-09 13:23:15 · 684 阅读 · 0 评论 -
.NET实现MySQL访问接口
最近在项目过程中,需要用到MySQL数据库,下面就将自己的一些使用心得分享一下。安装MySQL数据库的.NET组件1、可以到http://dev.mysql.com/downloads去下载最新的组件版本;2、安装完毕后,在自己的项目中添加对应版本的MySql,Data.dll。经过上面两个步骤,我们就可以进行MySQL访问通用类的编写了。MySQL数据库访问通用类/*原创 2014-01-09 13:40:31 · 6665 阅读 · 0 评论 -
C#强类型数据集的多数据库应用
之前项目有人提出用强类型数据集会比较好用,因为XXXX(各种优点,详情百度),后来遇到一些当时无法解决的问题则没有再去研究。问题1:VS2010中的数据连接没有找到mysql的数据连接选项问题2:如何在不使用强类型数据集自带的connection在两个数据库或者多个数据库中动态切换。 今日研究了一下 找到了解决办法问题1解法:下载mysql驱动 mysql官转载 2014-01-08 08:46:20 · 1686 阅读 · 0 评论 -
利用反射动态调用C#嵌入到资源的托管DLL
以前写了一篇博客《C#嵌入dll到资源释放的问题》讲到了DLL文件嵌入到程序后,程序运行时自动释放的问题。很多读者都问到了一个同一个问题:文章针对的是非托管的Win 32 DLL,那么托管的DLL怎么嵌入并释放呢?这篇文章就来聊一下这个话题。原创 2017-09-28 22:32:56 · 1841 阅读 · 0 评论