博客园 - LoveJenny
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=677409
2018-05-30T13:18:36Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
feed.cnblogs.com
https://www.cnblogs.com/LoveJenny/p/opensource_software_license_tool__easyhelper_easylicense.html
开源 .net license tool, EasyLicense ! - LoveJenny
介绍: 过去我常常像是否有一个帮助授权的软件,它可以非常简单的创建license,并且非常容易的验证license。 这是一个非常普通和公共的功能,但是我没有找到合适的开源软件,大部分开源软件都比较复杂,并且有太多我不需要的功能。 所以我创建了这个项目,希望可以让授权的流程变的简单。 使用代码: E
2017-07-04T00:27:00Z
2017-07-04T00:27:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】介绍: 过去我常常像是否有一个帮助授权的软件,它可以非常简单的创建license,并且非常容易的验证license。 这是一个非常普通和公共的功能,但是我没有找到合适的开源软件,大部分开源软件都比较复杂,并且有太多我不需要的功能。 所以我创建了这个项目,希望可以让授权的流程变的简单。 使用代码: E <a href="https://www.cnblogs.com/LoveJenny/p/opensource_software_license_tool__easyhelper_easylicense.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/p/LoggingWithNLog.html
Logging with NLog - LoveJenny
相比较log4net, 我更喜欢NLog, 因为NLog 更简单, 而且配置选项也更加的清楚,可能是因为log4net 是从log4j 移植过来的一个原因吧,总感觉有很多的java 成分在。要使用NLog 首先也需要安装NLog Package。安装好之后,添加一个NLog.config 文件,代码...
2015-06-17T00:12:00Z
2015-06-17T00:12:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】相比较log4net, 我更喜欢NLog, 因为NLog 更简单, 而且配置选项也更加的清楚,可能是因为log4net 是从log4j 移植过来的一个原因吧,总感觉有很多的java 成分在。要使用NLog 首先也需要安装NLog Package。安装好之后,添加一个NLog.config 文件,代码... <a href="https://www.cnblogs.com/LoveJenny/p/LoggingWithNLog.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/p/LoggingWithLog4net.html
Logging with Log4net (二) - LoveJenny
log4net 是.net 的一款日志记录框架。它提供了很多的方法来帮助记录日志:使用起来也比较方便:选中项目,点击右键,然后选择 Manage NuGet Packages...安装log4net package。安装好Package 之后,需要用配置文件来配置log4net.在项目中添加log4...
2015-06-10T23:49:00Z
2015-06-10T23:49:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】log4net 是.net 的一款日志记录框架。它提供了很多的方法来帮助记录日志:使用起来也比较方便:选中项目,点击右键,然后选择 Manage NuGet Packages...安装log4net package。安装好Package 之后,需要用配置文件来配置log4net.在项目中添加log4... <a href="https://www.cnblogs.com/LoveJenny/p/LoggingWithLog4net.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/p/LoggingWithDebugAndTrace.html
Logging with Debug And Trace (一) - LoveJenny
对于一个应用程序而言,Log 必不可少.在.net 里面,最简单的方式就是用Console 来输出 信息了,例如下面的例子: public class Program { public static void Main(string[] args) { ...
2015-06-10T01:48:00Z
2015-06-10T01:48:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】对于一个应用程序而言,Log 必不可少.在.net 里面,最简单的方式就是用Console 来输出 信息了,例如下面的例子: public class Program { public static void Main(string[] args) { ... <a href="https://www.cnblogs.com/LoveJenny/p/LoggingWithDebugAndTrace.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/p/3706459.html
ThoughtWorks代码挑战——FizzBuzzWhizz - LoveJenny
很久没发表过文章了,今天看到一篇文章 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏(C#解法)看到LZ的2B青年代码,实在是惨不忍睹,故写篇文章来探讨下这类问题的一般思考。原题:FizzBuzzWhizz 你是一名体育老师,在某次课距离下课还有五分钟时,你决...
2014-05-04T04:04:00Z
2014-05-04T04:04:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】很久没发表过文章了,今天看到一篇文章 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏(C#解法)看到LZ的2B青年代码,实在是惨不忍睹,故写篇文章来探讨下这类问题的一般思考。原题:FizzBuzzWhizz 你是一名体育老师,在某次课距离下课还有五分钟时,你决... <a href="https://www.cnblogs.com/LoveJenny/p/3706459.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2013/03/20/2970433.html
Control 的DraggerHelper, 拖动控件从此变得很简单。。。 - LoveJenny
程序员经常要实现拖动控件的功能,一般实现这个功能,都要注册事件,然后写MouseMove的代码,Point point = Point.Empty;control.MouseDown += control_MouseDown;control.MouseMove += control_MouseMove; control.MouseLeave += control_MouseLeave;如果程序的很多地方都有这个逻辑的话,那么代码就会有一大部分的重复了。在网上如果你搜索控件拖动的话,大部分代码都是上面的代码,重复的逻辑,重复的故事。于是我想,能不能写一个帮助类,当需要拖动的时候,只要调用Enab
2013-03-19T23:18:00Z
2013-03-19T23:18:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】程序员经常要实现拖动控件的功能,一般实现这个功能,都要注册事件,然后写MouseMove的代码,Point point = Point.Empty;control.MouseDown += control_MouseDown;control.MouseMove += control_MouseMove; control.MouseLeave += control_MouseLeave;如果程序的很多地方都有这个逻辑的话,那么代码就会有一大部分的重复了。在网上如果你搜索控件拖动的话,大部分代码都是上面的代码,重复的逻辑,重复的故事。于是我想,能不能写一个帮助类,当需要拖动的时候,只要调用Enab <a href="https://www.cnblogs.com/LoveJenny/archive/2013/03/20/2970433.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2013/03/13/2956922.html
使用“using” 的 “Cursor” - LoveJenny
很多时候,我们会写下面的这段代码: private void button1_Click(object sender, EventArgs e){ Cursor cursor = Cursor.Current; this.Cursor = Cursors.WaitCursor; LongTimeMethod(); this.Cursor = cursor;}priv...
2013-03-12T23:26:00Z
2013-03-12T23:26:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】很多时候,我们会写下面的这段代码: private void button1_Click(object sender, EventArgs e){ Cursor cursor = Cursor.Current; this.Cursor = Cursors.WaitCursor; LongTimeMethod(); this.Cursor = cursor;}priv... <a href="https://www.cnblogs.com/LoveJenny/archive/2013/03/13/2956922.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2013/03/05/2943691.html
Windows 服务入门指南 - LoveJenny
有很多时候,我们需要创建Windows Service。 这篇文章可以算是一个入门指南吧,希望对初学者有帮助.要创建Windows Service, 首先选择Windows服务项目,如下图:这里我想创建一个Windows服务,定时的执行一些任务。public partial class Service1 : ServiceBase{ public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { } protecte...
2013-03-04T23:06:00Z
2013-03-04T23:06:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】有很多时候,我们需要创建Windows Service。 这篇文章可以算是一个入门指南吧,希望对初学者有帮助.要创建Windows Service, 首先选择Windows服务项目,如下图:这里我想创建一个Windows服务,定时的执行一些任务。public partial class Service1 : ServiceBase{ public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { } protecte... <a href="https://www.cnblogs.com/LoveJenny/archive/2013/03/05/2943691.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2013/01/30/2882383.html
关于静态事件 static event 的二三事 - LoveJenny
很多人都知道事件,一般定义一个事件是这样的写法public event EventHandler OneEvent;但是如果这样定义的话就需要进行null判断了于是很多人这样定义事件:public event EventHandler OneEventNeverNull = (o, e) => { };这样就不需要判断null了。上面的事件你可以把它认为是实例事件. 我们这里要谈的是静态事件(static event).静态事件和实例事件的区别是加了个static 关键字,可别小看这个关键字,区别大了。首先静态事件的定义为:public static event EventHandler
2013-01-29T23:18:00Z
2013-01-29T23:18:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】很多人都知道事件,一般定义一个事件是这样的写法public event EventHandler OneEvent;但是如果这样定义的话就需要进行null判断了于是很多人这样定义事件:public event EventHandler OneEventNeverNull = (o, e) => { };这样就不需要判断null了。上面的事件你可以把它认为是实例事件. 我们这里要谈的是静态事件(static event).静态事件和实例事件的区别是加了个static 关键字,可别小看这个关键字,区别大了。首先静态事件的定义为:public static event EventHandler <a href="https://www.cnblogs.com/LoveJenny/archive/2013/01/30/2882383.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2013/01/15/2860553.html
参数化查询为什么能够防止SQL注入 - LoveJenny
很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。 本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。 首先:我们要了解SQL收到一个指令后所做的事情: 具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理 在这里,我简单的表示为: 收到指令 -> 编译SQL生成执行计划 -...
2013-01-14T23:08:00Z
2013-01-14T23:08:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。 本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。 首先:我们要了解SQL收到一个指令后所做的事情: 具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理 在这里,我简单的表示为: 收到指令 -> 编译SQL生成执行计划 -... <a href="https://www.cnblogs.com/LoveJenny/archive/2013/01/15/2860553.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/12/31/2840238.html
关于数据的级联删除和更新 - LoveJenny
很多时候,我们会碰到这样的场景:“删除一个表的数据的时候,将另一个表的相关数据删除。”在这里我建立两张表:“ProductCategory”,“Product”.有一个需求是这样的:在删除某个ProductCategory 的时候,同时删除该Category的products.这里是创建两张表的脚本:CREATE TABLE [dbo].[ProductCategory]( [Id] [uniqueidentifier] NOT NULL, [Name] [varchar](50) NULL, CONSTRAINT [PK_ProductCategory] PRIMARY KEY ...
2012-12-30T23:22:00Z
2012-12-30T23:22:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】很多时候,我们会碰到这样的场景:“删除一个表的数据的时候,将另一个表的相关数据删除。”在这里我建立两张表:“ProductCategory”,“Product”.有一个需求是这样的:在删除某个ProductCategory 的时候,同时删除该Category的products.这里是创建两张表的脚本:CREATE TABLE [dbo].[ProductCategory]( [Id] [uniqueidentifier] NOT NULL, [Name] [varchar](50) NULL, CONSTRAINT [PK_ProductCategory] PRIMARY KEY ... <a href="https://www.cnblogs.com/LoveJenny/archive/2012/12/31/2840238.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/12/19/2824373.html
我不喜欢正则... - LoveJenny
介绍:事实上我喜欢正则:他们做的很好了。 事实上他们太好了,以至于几乎所有的程序员都必须使用它。不幸的是每当我需要一个正则的时候,我都会碰到同样的问题:对于那些该死的语法我基本上都忘光了..。如果我每天都要写一个的话,我可能会很容易的记住他们,可是在一年里我基本上很少写几个..在厌倦了一次又一次的查看和学习文档之后,我决定通过String的扩展方法来实现他们..背景:在处理大文本的验证,提取,编辑,替换或者是删除一个给定模式的文本(例如一个邮箱地址)的时候,正则表达式非常强大和简洁。为了正确的使用正则表达式,你应该:一个用于分析的文本。一个正则表达式解析引擎。一个正则表达式(文本中用于查找分析
2012-12-18T23:22:00Z
2012-12-18T23:22:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】介绍:事实上我喜欢正则:他们做的很好了。 事实上他们太好了,以至于几乎所有的程序员都必须使用它。不幸的是每当我需要一个正则的时候,我都会碰到同样的问题:对于那些该死的语法我基本上都忘光了..。如果我每天都要写一个的话,我可能会很容易的记住他们,可是在一年里我基本上很少写几个..在厌倦了一次又一次的查看和学习文档之后,我决定通过String的扩展方法来实现他们..背景:在处理大文本的验证,提取,编辑,替换或者是删除一个给定模式的文本(例如一个邮箱地址)的时候,正则表达式非常强大和简洁。为了正确的使用正则表达式,你应该:一个用于分析的文本。一个正则表达式解析引擎。一个正则表达式(文本中用于查找分析 <a href="https://www.cnblogs.com/LoveJenny/archive/2012/12/19/2824373.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/12/18/2822629.html
TopMost 和 visual studio 之间的小秘密 - LoveJenny
TopMost 相信很多人都用过,msdn的解释如下:如果你设置了Form的TopMost为true的话,那么窗体就会被显示为最底层窗体.public partial class Form1 : Form{ public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.TopMost = true; }}这个form很简单,在Load的时候将自己的TopMost 设置为true。如果你直接运行...
2012-12-17T23:19:00Z
2012-12-17T23:19:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】TopMost 相信很多人都用过,msdn的解释如下:如果你设置了Form的TopMost为true的话,那么窗体就会被显示为最底层窗体.public partial class Form1 : Form{ public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.TopMost = true; }}这个form很简单,在Load的时候将自己的TopMost 设置为true。如果你直接运行... <a href="https://www.cnblogs.com/LoveJenny/archive/2012/12/18/2822629.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/12/06/2804324.html
C# 的关键字系列(4 of n) - LoveJenny
和对象类型(object type),类型转换(type conversions)打交道的关键字:asisexplicitimplicitoperatorsizeoftypeofis and asis : 用来判断某个对象是不是某个类型。string str= string.Empty; if (str is string) { }在这里如果str 是string 的话,if 就是true。as :将某个对象转换为某个类型。string str= string.Empty; if (str is string) { } string as_str = str as string; if (as
2012-12-05T23:11:00Z
2012-12-05T23:11:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】和对象类型(object type),类型转换(type conversions)打交道的关键字:asisexplicitimplicitoperatorsizeoftypeofis and asis : 用来判断某个对象是不是某个类型。string str= string.Empty; if (str is string) { }在这里如果str 是string 的话,if 就是true。as :将某个对象转换为某个类型。string str= string.Empty; if (str is string) { } string as_str = str as string; if (as <a href="https://www.cnblogs.com/LoveJenny/archive/2012/12/06/2804324.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/11/19/2778037.html
Head First 设计模式中的命令模式 的一个错误 - LoveJenny
最近在看Head First 设计模式,其中命令模式中有讲到实现撤销功能,并且作者还出了一道题,下面的是书中习题:public class MarcoCommand implements Command{ Command[] commands; public MarcoCommand(Command[] commands) { this.commands = commands; } public void execute() { for (int i = 0; i < commands.Length; i++) { commands[i].execute(); } } public...
2012-11-19T13:38:00Z
2012-11-19T13:38:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】最近在看Head First 设计模式,其中命令模式中有讲到实现撤销功能,并且作者还出了一道题,下面的是书中习题:public class MarcoCommand implements Command{ Command[] commands; public MarcoCommand(Command[] commands) { this.commands = commands; } public void execute() { for (int i = 0; i < commands.Length; i++) { commands[i].execute(); } } public... <a href="https://www.cnblogs.com/LoveJenny/archive/2012/11/19/2778037.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/11/17/2774967.html
C# 的关键字系列 (3 of n) - LoveJenny
这边文章主要探讨流程控制的关键字:首先从最常用的for开始1:初始i =0, 2:判断i<10 成立,3:Console.WriteLine(i);4:执行i++,转到step 2.在这里,输出很简单,0,1,2,3,4,5,6,7,8,9,10?问,有10吗?我们从9开始,在Console.WriteLine(9)之后,接着执行i++,此时,i = 10.转到step2,判断i<10,因为10<10 返回false,所以跳出循环。所以不会输出10.好,我们难一点,问:输出什么?答:1,3,5,7,9,11?首先初始为1,接着判断,接着输出,接着+2,所以1,3,5,7,9.
2012-11-17T08:39:00Z
2012-11-17T08:39:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】这边文章主要探讨流程控制的关键字:首先从最常用的for开始1:初始i =0, 2:判断i<10 成立,3:Console.WriteLine(i);4:执行i++,转到step 2.在这里,输出很简单,0,1,2,3,4,5,6,7,8,9,10?问,有10吗?我们从9开始,在Console.WriteLine(9)之后,接着执行i++,此时,i = 10.转到step2,判断i<10,因为10<10 返回false,所以跳出循环。所以不会输出10.好,我们难一点,问:输出什么?答:1,3,5,7,9,11?首先初始为1,接着判断,接着输出,接着+2,所以1,3,5,7,9. <a href="https://www.cnblogs.com/LoveJenny/archive/2012/11/17/2774967.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/11/13/2767377.html
C# 的关键字系列 (2 of n) - LoveJenny
用于修饰类,方法,属性和字段的关键字: 首先从最简单的private,protected,internal,public 解释。 public 和internal 修饰类。 public,protected,private 修饰方法。 修饰类的时候: public 代表公开,也就是所有程序集都可以访问这个类。 internal 代表内部的,也就是只有在同一程序集中才能访问这个类,一般而言同一程序集就是同一个dll。 修饰方法的时候: public 代表公开,也就是所有的类都可以访问这个方法。 protected 代表受保护的,也就是只有我的子类才能访问这个方法。 private 代表私有的..
2012-11-12T22:57:00Z
2012-11-12T22:57:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】用于修饰类,方法,属性和字段的关键字: 首先从最简单的private,protected,internal,public 解释。 public 和internal 修饰类。 public,protected,private 修饰方法。 修饰类的时候: public 代表公开,也就是所有程序集都可以访问这个类。 internal 代表内部的,也就是只有在同一程序集中才能访问这个类,一般而言同一程序集就是同一个dll。 修饰方法的时候: public 代表公开,也就是所有的类都可以访问这个方法。 protected 代表受保护的,也就是只有我的子类才能访问这个方法。 private 代表私有的.. <a href="https://www.cnblogs.com/LoveJenny/archive/2012/11/13/2767377.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/11/12/2765727.html
C# 的关键字系列 (1 of n) - LoveJenny
首先大部分的C#关键字都在下表:abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinin (generic modifier)intinterfaceinternalislocklongnamespacenewnullobjectoperatoroutout (generic modifier)override
2012-11-11T23:06:00Z
2012-11-11T23:06:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】首先大部分的C#关键字都在下表:abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinin (generic modifier)intinterfaceinternalislocklongnamespacenewnullobjectoperatoroutout (generic modifier)override <a href="https://www.cnblogs.com/LoveJenny/archive/2012/11/12/2765727.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/10/10/2718834.html
如何找一张相似的图片---高手请绕过,适合初学者 - LoveJenny
刚回到家,看到博客园里面的首页: 按照习惯,我打开了新闻头条:[新闻头条]噱头与实质(4/939) 里面有一副图片估计有点内涵,但是又看不清楚。 知道有内涵,于是我把图片保存下来,然后放大查看: 郁闷的是,依然看不清楚到底写了什么,和我有同样问题的是下面的这位: 哈哈,不用我解释了。其实很早我就知道搜索引擎有搜索相似图片的功能:打开Baidu: 打开google: 同样的操作,在google下面可以体会到“爽”的感觉,哎,度娘啊。。。最后这个图片如下:
2012-10-10T12:24:00Z
2012-10-10T12:24:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】刚回到家,看到博客园里面的首页: 按照习惯,我打开了新闻头条:[新闻头条]噱头与实质(4/939) 里面有一副图片估计有点内涵,但是又看不清楚。 知道有内涵,于是我把图片保存下来,然后放大查看: 郁闷的是,依然看不清楚到底写了什么,和我有同样问题的是下面的这位: 哈哈,不用我解释了。其实很早我就知道搜索引擎有搜索相似图片的功能:打开Baidu: 打开google: 同样的操作,在google下面可以体会到“爽”的感觉,哎,度娘啊。。。最后这个图片如下: <a href="https://www.cnblogs.com/LoveJenny/archive/2012/10/10/2718834.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/LoveJenny/archive/2012/09/21/2696274.html
MethodLogger 修改dll 记录方法的开始和结束(Hook into a method) - LoveJenny
如果你想记录一个方法的开始和结束,那么该怎么做呢?最简单的方法:public class MyClass{ public void MyMethod() { Log.EnterMethod(); Console.WriteLine("MyMethod"); Log.ExitMethod(); }}可是,如果已经有了一个程序集,想在每个方法的开始和结束记录方法的执行,那么该如何做呢?在CodeProject 上有篇文章就介绍了如何处理这种情况:MethodLogger - Hook into method calls in .NET binaries本文不打算做翻译,只是随便
2012-09-20T23:02:00Z
2012-09-20T23:02:00Z
LoveJenny
https://www.cnblogs.com/LoveJenny/
【摘要】如果你想记录一个方法的开始和结束,那么该怎么做呢?最简单的方法:public class MyClass{ public void MyMethod() { Log.EnterMethod(); Console.WriteLine("MyMethod"); Log.ExitMethod(); }}可是,如果已经有了一个程序集,想在每个方法的开始和结束记录方法的执行,那么该如何做呢?在CodeProject 上有篇文章就介绍了如何处理这种情况:MethodLogger - Hook into method calls in .NET binaries本文不打算做翻译,只是随便 <a href="https://www.cnblogs.com/LoveJenny/archive/2012/09/21/2696274.html" target="_blank">阅读全文</a>