C#
niuge No.1
这个作者很懒,什么都没留下…
展开
-
C#使用属性、反射减少代码耦合
最近有个需求,需要经常动态添加数据,但是添加数据的那个类很大,而且有两个人同时修改。为了减少冲突,我就把动态添加数据的那部分提取出去,并且想到使用属性和反射减少耦合。结果就是:我在数据类里添加一个方法,就动态添加一个字典数据,不用去修改其他地方的代码。属性类:[AttributeUsage(AttributeTargets.Method)] class ExportAttribute:System.Attribute { private string key;原创 2020-11-20 09:41:19 · 359 阅读 · 0 评论 -
sqlite资源、安装、及应用示例
1 sqlite资源sqlite资源下载页面:https://www.sqlite.org/download.html下载以下两个文件即可2 sqlite安装解压sqlite到相应位置,然后把里面的这几个文件复制到相应文件夹,并修改坏境变量的Path,增加指向这个文件夹的路径。3 sqlite教程sqlite菜鸟教程:https://www.runoob.com/sqlite/sqlite-tutorial.html4 sqlite查看程序navicat for sq原创 2020-11-20 09:31:51 · 191 阅读 · 0 评论 -
离线部署Jenkins
公司网络要求比较严格,服务器(windows 服务器)必须是离线的,那Jenkins在线安装插件这条路就走不通了。然后看了官网,有两种方式解决:1)离线安装插件2)先在线安装好Jenkins,然后把插件复制过去。1、离线安装插件踩坑去https://plugins.jenkins.io/下载插件,发现插件下载困难,然后用了一下MSBuild插件,居然安装不了,坑得飞起,其实是...原创 2019-11-26 22:51:31 · 805 阅读 · 0 评论 -
利用腾讯企业邮箱为Jenkins配置邮箱
经过多方尝试,最后还是发现这个方法最简单。下面就说一下具体操作步骤。1.申请qq企业邮箱这个最简单不过了,一路按照提示申请,这其中需要一个域名,所以这里最好是有个人网站用这种方法最好。估计也是腾讯卖腾讯云的一个套路。不过我本身有可用域名,所以这就简单了。然后就是一路按照提示操作。2.设置管理员账号(牢记),新增成员,添加用户名及密码。3.下载Foxmail,然后就可以直接用...原创 2018-08-30 23:41:29 · 4024 阅读 · 1 评论 -
修改Jinkins的登录端口(百度一下之后的填坑)
首先下面链接有一半用。永久修改Jenkins启动端口的一种解决方法注意里面的用户可能没有权限修改端口那部分。这就需要在server里的Jenkins的服务里输入密码,并重新启动Jenkins服务。每次百度一下都浪费我大量时间。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...原创 2018-09-04 16:25:25 · 431 阅读 · 0 评论 -
Installshield的相关应用文章(留待备用)
1.installshield版本问题暂时只有15及以下的破解版本,比这高的基本上都是骗人的。2.InstallShield的安装去网上搜吧。。。3.经典教程(海洋女神的五篇经典文章)http://www.cnblogs.com/Cindy_weiwei/archive/2009/05/18/1459542.htmlhttps://www.cnblogs.com/Cindy...原创 2018-09-02 13:54:40 · 183 阅读 · 0 评论 -
wcf中做NetTcpBinding碰到找不到具有绑定 NetTcpBinding 的终结点的与方案 net.tcp 匹配的基址的错误
碰到这个错误就是没有给net.tcp赋予绝对地址。原创 2018-10-02 01:10:09 · 877 阅读 · 0 评论 -
C# 调用外部exe程序
有时候dll不能引用,那就只能另外做一个exe程序,然后通过调用这个程序就可以解决问题,但往往需要在本地生成一个中间数据。虽然有name一点麻烦,但也挺好用。这里就是一个调用外部程序的方法。/// <summary> /// 通过进程调用外部程序 /// </summary> /// <param name="exePath"></p...原创 2018-10-17 15:58:06 · 4344 阅读 · 0 评论 -
C# 写入日志txt文件
public static void Write(string strs) { FileStream fs = new FileStream("D:\\aaa.txt", FileMode.Append,FileAccess.Write); //获得字节数组 byte[] data = System.Text.Encoding.Default.GetBytes(strs...原创 2018-10-24 17:35:14 · 5540 阅读 · 0 评论 -
Websocket应用实例(转)
https://www.cnblogs.com/sheseido/p/7047948.html转载 2019-03-13 15:38:23 · 549 阅读 · 0 评论 -
wpf分散绑定集合数据
在使用wpf的时候,经常用到数据绑定,但大多数是用单个绑定,或者集合绑定到treeview、listview、datagrid等集合控件上。但是总会有前端设计师突发奇想,各种奇怪设计,而我们又不得不按照他们的想法去实现。这几天就碰到这样的需求,需要把集合数据分散绑定。这里举一个简单案例,实际需求远比这复杂,但是核心办法一样。这里的绑定语法很奇怪,居然直接用index就可以绑定数据,很神奇。cs:p...原创 2018-06-01 09:40:19 · 556 阅读 · 0 评论 -
WPF的TreeView与CheckBox结合,父节点和子节点相互影响
这个例子折腾了我好几天,今天终于搞定了,由于太晚了,就不说过程,只看结果和代码。1、遍历文件夹:在这个例子中,CheckBox显示三种状态,另外父节点选中,子节点全选,父节点不选,子节点全不选;子节点部分选,父节点null状态;子节点全选,父节点选中状态;子节点全不选,父节点不选状态。这个例子适合遍历。接下来看代码(这个代码的例子忘记了是哪个大神写的,下次找到后附链接加感谢):class Dire...原创 2018-04-23 23:24:45 · 3186 阅读 · 2 评论 -
C#线程
一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。2、可以使用线程来简化编码。3、可以使用线程来实现并发执行。二、基本知识1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2、前台线程和后台线程:通过Thread类新建线程默认为前台线程。转载 2017-02-05 19:39:39 · 453 阅读 · 0 评论 -
利用dataset将数据给到dataGridview
怎样利用DataSet向DataGridView中添加数据呢?很简单:编写添加按钮的单击事件方法示例代码:private void btnAdd_Click(object Sender,EventArgs e){ //创建DataSet对象 DataSet ds = new DataSet(); //创建DataTable对象 DataTable转载 2017-02-05 19:40:42 · 15004 阅读 · 3 评论 -
委托和事件
C# 中的委托和事件 委托和事件在 .NET Framework 中的应用非常广泛,然而,较好地理解委托和事件对很多接触 C# 时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里堵得慌,浑身不自在。本章中,我将由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.NET Framework 中的委托和事转载 2017-02-05 19:42:50 · 609 阅读 · 0 评论 -
revit二次开发中怎样建nurbspline曲线形式的钢筋
revit二次开发中nurbspline曲线的表现形式实际上是一系列的直线组成的。由于revit只支持直线或者圆曲线的钢筋变成钢筋。所以不能将nurbspline曲线转成钢筋,所以可以先将nurbspline模型线转连续的直线,然后再转成钢筋即可。其中,nurbspline模型线线转成连续的直线的代码如下:using System;using System.原创 2017-02-14 22:36:06 · 3022 阅读 · 0 评论 -
Revit二次开发——怎样使用dynamo的类
Revit二次开发——怎样使用dynamo的类原创 2017-07-01 23:53:32 · 8119 阅读 · 3 评论 -
Revit二次开发——场地地形
Revit的场地地形其实没有什么特别的,其实它就是一个面而已,创建这个面用下面这个方法:Form NewFormByCap(bool isSolid, ReferenceArray profile); 如果是做成五花肉那种的,就用另一个方法:Form NewLoftForm(bool isSolid, ReferenceArrayArray profiles); 首先用原创 2017-07-27 22:08:25 · 6606 阅读 · 0 评论 -
revit二次开发——建连续刚构桥2(带平纵曲线)
revit二次开发——建连续刚构桥2(带平纵曲线)原创 2017-07-04 22:30:53 · 4565 阅读 · 6 评论 -
revit二次开发——建连续刚构桥(方法1)
其实建连续刚构桥也不是很难,主要是用代码来驱动族而已。好多牛人用dynamo来做这件事情,我觉得也挺好,我也用过dynamo来操作过,但是用起来还是没有插件爽。 其实代码也挺简单的,这里就直接放主要的代码吧。核心就是把族放在相应位置,然后获取族参数,并修改族参数。 最后效果视频见:http://v.youku.com/v_show/id_XMTg2MTY2NDU4原创 2017-07-04 00:07:54 · 2011 阅读 · 0 评论 -
Revit二次开发——读取构件的材料外观信息
revit读取材料的外观信息不能通过lookup来搞定,所以读取起来稍微有点麻烦。但是在revit二次开发的官方基础教程里有相关的解释。 这里就以一个墙体为例,读取墙体材料的所有外观信息(如下图)。这里主要针对autodesk的官方材料库来说的。对于非官方材料库的,下面的代码里被注释掉的可以参考一下。其实读取材料的原理比较简单,过程如下:1)获取材料的ID,ICollect原创 2017-07-03 23:56:49 · 9180 阅读 · 2 评论 -
wpf数据绑定——radiobutton绑定枚举值并显示枚举值
这里首先给出枚举值:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace RadioButtonValue{ public enum EmunMyString { A,原创 2017-12-02 19:53:12 · 7858 阅读 · 1 评论 -
OpenXml创建Excel,读excel,将DataGrid数据导出到excel
仅此记录一下,有些许bug,但不重要,可以自行修改。excel的工具类。public class ExcelUtils {///注意: ///需要提前添加DocumentFormat.OpenXml.dll ///openXml只能处理后缀为xlsx的excel文件,xls格式的不支持 private object m_objOpt = Mi...原创 2018-04-16 18:53:34 · 1125 阅读 · 0 评论 -
datagridview 显示行号、插入多行、删除、插入、清空行
privatevoiddgv_BBQ_RowStateChanged(objectsender,DataGridViewRowStateChangedEventArgse) { e.Row.HeaderCell.Value =string.Format("{0}", e.Row.Index + 1); }原创 2017-02-05 19:37:24 · 706 阅读 · 0 评论