- 博客(27)
- 收藏
- 关注
原创 全网深拷贝浅拷贝讲的最清楚的文章
深拷贝与浅拷贝什么是深拷贝和浅拷贝?代码实现深拷贝的实现方式喜欢的点赞什么是深拷贝和浅拷贝?假如老张需要一台冰箱,于是老张花2000块买了一台冰箱,老张就拥有了一台冰箱,老张往冰箱里面塞满了自己喜欢的东西。有一天老刘说他也需要一台冰箱,老张知道后就把冰箱位置告诉了老刘,于是老刘也有了一台冰箱,老张跟老刘一 起快乐的吃冰箱的东西。我们管老刘获得冰箱的方式叫做浅拷贝。有一天老张感觉两个人用冰箱太麻烦,于是老张出钱给老刘买了一台冰箱用,于是老刘自己也有了自己的冰箱,这时候他们两个人各自拥有自己的冰箱,这种方
2022-04-14 15:27:09
300
原创 WinForm界面实现与Model实例的双向绑定
定义的model类继承接口INotifyPropertyChanged,并实现PropertyChanged; public class PersonModel: INotifyPropertyChanged { private int age; public int Age { get { return age; } set { age = value; SendChangeInfo("Age
2021-05-18 21:25:18
589
原创 EF Core增删改查基类
public class BaseServer { //上下文 private readonly DataContext Context; protected LogServer LogServer { get; } //依赖注入 protected BaseServer(DataContext dataContext, LogServer logServer) { this.Cont...
2021-04-19 21:32:48
619
原创 C#常用xml字符串操作
待处理xml:<sites> <site> <name>菜鸟教程</name> <url>www.runoob.com</url> </site> <site> <name>Google</name> <url>www.google.com</url> </sit
2020-11-17 21:33:44
1123
原创 C#序列化保存对象
本文介绍C#对象序列化后保存到文件,然后再从文件中读取数据反序列化成对象。我这里用lab做例子简单介绍该用法。下面是自定义的一个可被序列化的lab: [Serializable] public class mylabel : System.Windows.Forms.Label, ISerializable { void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex
2020-11-16 20:12:17
971
原创 WinForm窗体PropertyGrid控件使用
PropertyGrid控件是一个很全能的winform属性设置控件,可以将button,lab,text等控件的设置属性全部暴露出来。我这里简单介绍该控件的基本使用方法。首先我这里定义了一个该控件的窗体,定义一个公有的属性,将该控件暴露出来。public partial class Form2 : Form{ public PropertyGrid PropertyGrid; public Form2() { InitializeComponent();
2020-10-08 22:00:22
964
原创 C#实现json、xml与实体类互相转换
首先是json与实体类之间的的转换,现有如下json数据:{ "Content": "中午12点开会", "ResultCode": "502", "Sign": "签名", "Names": ["赵小美", "莉莎", "林妹妹"]}根据json数据定义实体类:在这里插入代码片...
2020-07-06 16:27:25
841
原创 WCF实现双工服务及客户端调用
请求-响应通信是最常规的用于客户端与服务之间信息交换的模式。通信由客户端发起,之后服务将响应消息发送给客户端。这种模式有一个弊端就是,服务总是被动的提供响应。假如服务需要给客户端发出一个通知或者警报,请求-响应这种单工模式就无法满足需求了。这次要说的就是双工通信模式,该模式下服务可以向任一方发送未经请求的消息。当然双工通信也可以是单向的。下面我们来看看其服务端是如何实现的。 //这里定义服务接口和回调函数接口 [ServiceContract(CallbackContract =typ
2020-06-28 22:16:16
546
原创 WCF的异步请求
首先在添加服务引用时生成异步操作。异步请求:static void Main(string[] args){ StockServiceClient proxy = new StockServiceClient(); for (int i = 0; i < 10; i++) { proxy.BeginGetPrice("异步操作",GetPric...
2020-05-05 16:15:14
217
原创 通过添加引用的方式实现WCF客户端
首先确保目标服务可以被正常访问,利用添加服务引用自动生成代理。添加后会VS自动生成如下文件:利用生成的代理调用服务:private static void GetWCFProxy(){ ServiceReference1.StockServiceClient stockServiceClient = new ServiceReference1.StockServiceClien...
2020-05-05 11:49:09
288
原创 完全使用代码实现WCF客户端
首先定义要访问的接口。[ServiceContract]public interface IStockService{ [OperationContract] double GetPrice(string ticler);}客户端创建信道来与服务进行通信。private static void GetWCFCode(){ ChannelFactory<I...
2020-05-05 11:28:46
295
原创 利用配置文件实现WCF的创建
首先是要定义契约,在接口中定义方法,并在类中实现。[ServiceContract]public interface IStockService{ [OperationContract] double GetPrice(string ticler);}//继承该接口并实现方法class StockService : IStockService{ publi...
2020-05-05 10:34:20
155
原创 C#调用WebService的三种方式
本文介绍WebService的三种调用方式,直接引用,引用wsdl和soap请求三种方式。第一种是直接引用,这个适用于开发者可以直接访问到webservice的情况,直接引用会自动生成引用代码。在引用->添加服务引用->高级->添加web引用,直接输入webservice地址点添加引用即可。添加完成后会自动生成一个文件,这个文件就是我们引用的webservice。...
2020-03-25 22:26:48
7817
2
原创 C#开发WebService实例和发布
WebService是一种跨平台,独立于编程语言之外的通信技术,将其部署在服务器端,在网络内的所有设备都可以调用这个WebService。本文介绍用C#开发WebService实例以及其部署和调用。首先是一个简单的WebService工程的创建:1、创建一个asp.net web应用程序,我这里起名字叫WebServiceTest2、创建一个空的模板3、然后给这个空项目添加web服务...
2020-03-17 21:24:09
726
原创 C#委托实现发布订阅加中间者
介绍一种C#非常重要的消息机制,这种机制通过委托实现消息的传递。中间者负责创建订阅者和发布者,发布者只有一个,可以用单例实现。订阅者可以有多个,只要订阅发布者的消息,就会在发布消息时收到消息。首先第一步是定义一个委托类型。namespace delegateTest{ //注意这个是在命名空间下面一层,没有放在类中 public delegate void SendInfo...
2020-02-19 17:32:37
237
原创 C#数据库存储过程的调用方法
本文主要介绍数据库存储过程通过C#调用的方法,并且如何获取出参和返回值。 //连接字符串 private string strConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; //连接对象 private SqlConnection c...
2020-02-19 16:16:06
970
原创 C#中SqlDataAdapter的使用
SqlDataAdapter是数据库操作的一种形式,可以将查出的数据填充到DataSet中。它的特点是你可以通过Update方法,将修改过的DataSet自动更新回数据库,而不需要重新写update或者delete语句。下面上代码: //先定义几个必要的字段 //连接字符串 private string strConn = ConfigurationManag...
2020-02-19 16:10:28
3180
原创 C#动态加载控件
C#动态加载控件本文介绍C#如何动态加载用户自定义控件。我在这里自定义一个简单控件,该控件由lable和TextBox组成。控件的定义。public partial class collegeConfig : UserControl{ public string _name = null; public string _number = null; public ...
2019-10-28 22:03:24
2973
原创 C#对Windows服务的开发、调试、安装和卸载
C#对Windows服务的开发、调试、安装和卸载Windows服务是可以在系统启动时自动打开的程序,运行在后台处理一些事务。本文主要介绍C#对服务的开发以及安装和卸载。在项目建立成功后,下面的两个方法是服务的启动和停止入口。//实例化MainServiceprivate readonly MainService service = new MainService();/// <s...
2019-10-20 22:28:00
459
原创 C#创建、写入和读取xml文档
C#创建、写入和读取xml在开发中时常需要将一些必要的配置进行保存,等下次程序启动时直接读取,使程序不至于每次进去都要重新配置。C#提供默认的App.config配置,但是不要以为这个是可以满足配置的读写,其实App.config对于程序是只读的,不支持写入。鉴于这个原因,推荐使用xml保存配置。首先是xml的创建:private XmlDocument _config = new XmlD...
2019-10-15 22:49:50
1159
原创 定期清除日志方法
由于客户的需求,需要定期清理日志文件。于是我用计划任务+批处理的方式解决了这个问题,虽然很简单,但是感觉很实用。首先是批处理脚本的编辑。新建文本文档然后后缀改成bat,用记事本打开,输入以下脚本:del /f /s /q C:\log\*.*cd C:\logrd /s /q C:\log当然了C:\log这个目录可以随便更改,看你想删除什么。下面是计划任务的创建:1、 将上面写...
2019-09-12 14:31:53
1664
原创 C#中使用ADO.NET操作数据库
C#访问数据库是通过ADO.NET实现的,其中ADO.NET是应用程序和数据库之间连接的驱动程序。ADO.NET的使用分为两部分实现,第一部分是应用程序与数据库之间的连接。 string strConn = "server = 127.0.0.1;uid = sa;pwd = `1234qwert;database = SP900Optimal";...
2019-08-07 17:10:46
711
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人