- 博客(119)
- 资源 (1)
- 收藏
- 关注
原创 net hook 研究
要涉及一些反汇编的知识,作者也不是很懂,可以提供一些思路 public class Test { public void Test1() { Console.WriteLine("test1"); } } class Program { static void Main(string[] args) { var obj = new Te...
2020-11-18 11:28:30
448
原创 C++ hook
BOOL SetHook(HMODULE hMod);FARPROC g_orgProc;int WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCation, UINT uType){ return ((PFNMESSAGEBOX)g_orgProc)(hWnd, "新函数", "HookDemo", uType);}...
2020-01-20 18:08:32
697
原创 Newtonsoft.Json 自定义序列化字段
class Program { static void Main(string[] args) { var m = new JsonModel() { Id = 0, Name = "nnnn" }; ...
2019-07-01 15:49:54
3138
原创 HttpWebRequest&&multipart/form-data
class Program { static void Main(string[] args) { HttpWebRequest request = WebRequest.CreateHttp("********"); request.Method = WebRequestMethods.Http.P...
2019-06-03 16:59:19
1731
原创 ef 查询相关数据
用到的类: public class DefaultContext : DbContext { private static string _conStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\code\gits\EntityFramework6\MultiT...
2019-02-21 15:17:00
428
原创 entity framework 迁移
1.打开 “程序包管理器控制台”2.设置 “程序包管理器控制台” 的默认项目为当前项目3.输入Enable-Migrations 再回车;项目中会增加一个Migrations文件夹里假设我们现在要在 [Table("persons")] public class Person { [Column("person_id")] p...
2019-02-15 16:08:40
371
原创 entity framework 自定义映射
接上一篇方法一:使用Attribute class Program { static void Main(string[] args) { HelloDbContext context = new HelloDbContext(); var p1 = new Person() { Id = 1,...
2019-02-15 15:27:32
577
原创 Hello entity framework
1.新建控制台程序2.NuGet添加entity framework3.添加数据库HelloEFDb.mdf4.编码 class Program { static void Main(string[] args) { HelloDbContext context = new HelloDbContext();...
2019-02-15 15:06:00
251
原创 Dapper里使用Attribute自定义映射关系
目的将book表中的id,name,price 映射到Book类中的Id1,Name1,Price1 class Program { static SQLiteConnection conn; static string dbStr = "test.db"; static void Main(string[] ar...
2019-02-11 17:26:15
3270
原创 orm 里使用Emit
比较一下Emit的赋值,反射赋值和直接赋值的效率namespace Assignment{ class Program { static SQLiteConnection conn; static string dbStr = "test.db"; static void Main(string[] args) ...
2019-01-31 16:42:12
481
原创 Emit 循环
目的是用Emit 生成一个和TargetMethod(代码如下) 一样的方法实现 class Program { static void Main(string[] args) { var method = GetTargetMethod(); method(); C...
2019-01-30 15:53:26
338
原创 Emit DynamicMethod
使用Emit动态生成一个计算两个int和的方法,int Add(int i,int j){ return i + j;}实现如下: class Program { static void Main(string[] args) { var func = GetAdd(); Co...
2019-01-29 16:19:11
870
原创 Hello Emit
相关类如下,目标是用Emit生成一个Writer类,并返回一个IWriter接口,使用接口调用 public interface IWriter { void Write(string msg, string msg1); } public class Writer: IWriter { public void Write(string msg,string msg1)...
2019-01-25 16:41:21
243
原创 研究下WPF 数据binding 原理
测试相关类 public class HostTest { public string Value{get; set;} public string Value1 {get ;set ;} } public class Test { private string _value = null; ...
2019-01-23 16:36:56
1223
原创 MyBatis增删查改
1.创建控制台程序。2.导入mysql和mybatis的jar包3.创建mybatis配置文件 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org...
2018-03-08 22:24:57
468
原创 MyBatis配置
首先用创建一个java控制台程序,然后创建一个引入mybatis和MySql的jar包,再创建一个mybatis的配置文件如mybatis.xml文件 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"...
2018-03-08 20:43:45
337
原创 Revit开发IExternalCommandAvailability的使用
在Revil里大部分命令在没有打开文档的时候是禁用的,有的在没有打开文档也是可以使用的。而又一些在平面视图是禁用的如 标高,有的在3D视图里是禁用的 如 标高和轴网,而这些是否可用我们是可以自己控制的在PushButton的属性里有一个AvailabilityClassName属性,通过这个就可实现命令在什么时候可用,禁用的控制。这个属性是个string,它需要设置为一个实现了IE
2017-09-30 14:04:29
1348
1
原创 Revit开发ImageView
在Revit里可以创建渲染,其实这个视图里显示的是光栅图像里的图片。这个视图对应的类是ImageView,如果要创建一个这样的视图,可以用这个类的Create静态方法, public static ImageView Create(Document document, string imageFileName);下面是一个导出当前视图图像,并创建一个Image
2017-09-26 18:21:22
850
原创 Revit开发BuildingEnvelopeAnalyzer
Revit API 里有个BuildingEnvelopeAnalyzer类,帮助文档里对它描述如下:This class uses a combination of ray-casting and flood-fill algorithms in order to find the building elements that are exposed to the outside of th
2017-09-26 18:12:19
665
原创 C# 动态生成程序集
假设有一个ITest接口,它有两个实现分别是TestClass1,和TestClass2,这时候如果需要一个TestClass4类但是现有程序里又没有这个类,就可以在运行时生成一个这样的类这个应该是可以用来实现AOP, public interface ITest { void Run(); } public class T
2017-09-26 17:58:14
1587
原创 C# 初探UI Automation
最近研究自动化测试,看了一下UI Automation的微软例子,表示太老了,遇到各种问题,UI Spy 好像已经被放弃了,可以用inspect.exe来代替,win10 的路径为:"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\inspect.exe"这个用来查询automationId,官网是以计算器例子,下面是在win10 修改后
2017-06-18 16:45:44
11716
2
原创 C# 反射性能
C# 创建对象可以直接用new,也可以用反射,下面测试一下反射创建的性能如何,这里可以比较一下,构造方法带参数和不带参数的区别。先创建一个测试类,分为构造函数带参数和不带参数,两种情况来测试 public class Test { public string Name { get; set; } public string Id {
2017-06-12 21:22:54
2676
原创 WPF DataContent内存释放问题
最近发现一个有趣的事,通过Window.dataContent来设置绑定以后,窗体关闭以后 ViewModel 并没有释放,再次调用改窗体后,前一个ViewModel才释放,或者是程序关闭以后才释放 ,搞不懂。。。如果要马上释放ViewModel可以在Window关闭以后将DataContent 设置为null ,这样ViewModel是可以释放的下面是测试代码,大神请指教!
2017-06-09 22:37:58
1783
原创 WPF 给控件添加可以绑定的命令
在WPF里的Button有一个可以绑定的Command的属性,只要绑定好这个属性以后,只要你ClickButton就会运行这个命令,但这时我们可以考虑一下这个问题,为什么是Click来触发呢?为什么不是右键单击来触发呢,下面研究一下,怎么能写一个右键单机能触发的命令:首先现有的Button肯定是不行了,所以自己写一个TButton ,它继承自Button public cla
2017-05-29 20:31:50
2982
2
原创 WPF 依赖属性
WPF 的ListBox 可以绑定SelectedItem但是不可以绑定SelectedItems不能绑定,这就有点烦了。所以可以自定义一个依赖属性来绑定:首先定义个TListBox类来代替ListBox public class TListBox:ListBox { public static readonly DependencyProperty
2017-05-29 13:34:30
848
原创 Revit开发之管段
在API里管段对应了一个PipeSegment类,要获取可以用Class过滤去来过滤如果要创建管段可以使用PipeSegment的Create方法来创建,这是个静态方法public static PipeSegment Create( Document ADocument, ElementId MaterialId, ElementId ScheduleId, ICollect
2017-05-28 14:56:26
1823
原创 C# 泛型弱事件管理器
,net 4.5 为弱事件提供了新的实现。泛型类 WeakEventManager,它派生自基类WeakEventManager,大大的简化了弱事件的处理 static void Main(string[] args) { CarDealer dealer = new CarDealer(); Consum
2017-05-27 21:03:47
1258
原创 Revit开发之管道的布管系统配置
Revit的管道,在编辑类型里有一个布管系统配置,里面有一些自动创建管件的设置。这里的类容可以通过PipeType.RoutingPreferenceManager来设置和获取,下面写个获取管段和管段的最小尺寸和最大尺寸的例子,其他类型同理。 Pipe p = doc.PickObject();//选择一个管道,这是作者写的扩展函数。 P
2017-05-27 13:50:10
5958
原创 C# 弱事件
先看一个普通事件例子: class Program { static void Main(string[] args) { CarDealer dealer = new CarDealer(); Consumer micheal = new Consumer("Micheal");
2017-05-26 23:10:27
818
原创 ICommand接口
// 摘要: // Defines a command. public interface ICommand { // // 摘要: // Occurs when changes occur that affect whether or not the command should execute.
2017-05-26 20:44:46
1426
原创 WPF 模板选择器
选择器: public class MyTemplateSelector:DataTemplateSelector { public DataTemplate DefaultTemplate { get; set; } public DataTempl
2017-05-25 22:08:14
1677
原创 C# 使用弱引用释放静态资源
class Program { static void Main(string[] args) { TestClass.Defalut.i = 5; //输出5 Console.WriteLine(TestClass.Defalut.i); GC.C
2017-05-25 14:04:25
1881
原创 Revit开发区分基本墙,幕墙,叠层墙
在Revit里墙有3个族,但是都是对应一个Wall类型,如果要区分这3种墙可以用WallType 的Kind属性这个属性是一个枚举包括以下类容:Member nameDescriptionUnknownThe basic type is not known.BasicA standard wall.CurtainA
2017-05-18 14:57:17
4931
1
原创 MVVMLight的Messenger
MvvmLight里的Messenger的注册方法有一个是这样的: // // 摘要: // Registers a recipient for a type of message TMessage. The action parameter will // be executed when a corresp
2017-05-14 12:32:52
753
原创 C# 通过MVVMLight探索IOC
使用MVVMlight创建一个项目以后,MainViewModel的构造函数是这样的: public MainViewModel(IDataService dataService) { _dataService = dataService; _dataService.GetData(
2017-05-13 14:48:31
2783
原创 C# udp小程序
学习udp,写个小聊天程序,供以后查看使用了MVVMLight /// /// This class contains properties that the main View can data bind to. /// /// See http://www.mvvmlight.net /// /// public
2017-05-07 17:20:37
537
原创 WPF 设置快捷键
在WPF里可以通过InputBindings来设置快捷键 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schem
2017-05-07 14:35:14
1949
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人