c#µÄdllÎļþ·´±àÒëÀûÆ÷
¸Õ½Ó´¥.net ʱ¾ÍÌý˵ ReflectorÕâ¸öÇ¿´ó·´±àÒ빤¾ßÄØ£¬Ö»ÊÇһֱûÓÐȥʹÓÃËû. ½ñÌìupdate¸úÎÒ˵ReflectorÈçºÎ£¬ÈçºÎÓÐÓã¬ÓõÄÈçºÎ£¬ÈçºÎˬ£¬»¹µÃÒâµÄ˵·´±àÒëÁ˲»ÉÙDLL...±¾À´±¾È˶ÔÐÂÏÊʾͷdz£ÓÐÐËȤ£¬ÌýËûÕâôһ˵.¾ö¶¨ÊÔÒ»ÊÔÕâ¸ö´«ËµÖеŤ¾ß.
ÎÒÓõİ汾ÊÇ4.1.84.0£¬ÒÔ£¬°Ñ×Ô¼º±àдDLL·´±àÒëÁËһϣ¬·´±àÒëºóµÄ´úÂë³ýÁ˱äÁ¿Ãû²»Í¬Í⣬ÆäËü»ù±¾ÉÏÊÇÒ»ÖÁµÄ£¬ÎÒ°Ñ·´±àÒëºóµÄ´úÂëµ¼µ½Ïà¹ØµÄÎļþÀҪÓõ½²å¼þ£©£¬ÔÙÓÃvs.net±àÒ룬ȫ²¿Í¨¹ý£¬ÕæÊÇˬѽ.Î§ÈÆReflecto¿ª·¢µÄ²å¼þÒ²ºÜ·Ç³£¶à£¬ÔÚÍøËÑË÷ÁËһϻù±¾µ½ÊÇÏÂÃæÕâЩ£¬ÍøÉϹØÓÚÕâЩ×é¼þµÄÓ÷¨ºÍ½éÉÜÒ²Èç³öÒ»éü£¬ÎÒÏëÕâ¾ÍÑù¾ÍÊÇÍøÂç¹²ÏíµÄ½á¹û°ÉÒÔϵÄ×é¼þÆäÖÐReflector.OpenRunningAssembly Reflector.CodeModelView Reflector.ClassView ÎÒÕÒ¹ýºÜ¶àÍøÕ¾£¬¶¼ÎÞ·¨ÏÂÔØµ½£¬Èç¹ûÓÐÄÇλÅóÓÑÓУ¬Ï£ÍûÄܸøÎÒÁËÒ»·Ý.
Reflector.FileDisassembler
Reflector.CodeMetrics
Reflector.SQL2005Browser
Reflector.DelphiLanguage
Reflector.McppLanguage
Reflector.ChromeLanguage
Reflector.Diff
Reflector.VisualStudio
Reflector.ClassView
Reflector.CodeModelView
Reflector.FileGenerator
Reflector.Graph
Reflector.OpenRunningAssembly
´ó¼Ò¿ÉÒÔµ½Reflector¹Ù·½ÍøÕ¾(http://www.aisto.com/roeder/dotnet/)ÏÂÔØ×îа汾ÏÂÔØºó½âѹËõ»áÓÃÒ»¸öReflector.exeÖ±½ÓË«»÷Ëü£¬¾Í¿ÉÒÔÔËÐÐÄØ£¬½çÃæÈçÏÂ.
µã»÷file£>open Ñ¡ÔñÐèÒª·´±àÒëµÄDLL£¬´ò¿ªºó¿Ø¼þµÄÃüÃû¿Õ¼ä»á³öÏÖÔÚ×ó±ßµÄÁбíÖУ¬ÈçÉÏÃæµÄdataaccesscommon.µãÐèÒª·´±àµÄÀàÈçÏÂÃæ
ÔÚÓұ߻á³öÏÖ¸ÃÀàµÄ´úÂëÈçÏÂͼ£º
¿´µ½Á˰ɣ¬·´±àÒëºóµÄ´úÂëºÍÔ´úÂë»ù±¾ÉÏûÓÐÊ²Ã´Çø±ð. Reflector±¾ÉíûÓн«´úÂëµ¼Èëµ½Îļþ¹¦ÄÜ£¬ÐèÒªÓõ½Ïà¹Ø²å¼þ.ÏÂÃæ½éÉÜÒ»¸ö²å¼þÓ÷¨¼°ÓÃ;.
(1) Reflector.FileDisassemblerºÍReflector.FileGeneratorÕâÁ½¸ö²å¼þµÄÓõÄÓÃ;¶¼ÊÇÒ»ÑùµÄ£¬½«·´±àÒëºóµÄ´úÂëµ¼³öµ½Ïà¹ØÎļþ£¬ÎÒÕâÀïÖ»½éÉÜReflector.FileDisassembleµÄÓ÷¨£¬Reflector.FileGeneratorÓ÷¨ÀàËÆR
Ïà¹ØÎĵµ£º
¹ØÓÚʹÓõ½ÁËÁ½¸öC#¹Ø¼ü×ÖthisºÍbase¡£
1£¬C# "this " keyword
Æä×÷ÓÃÒýÓÃÀàµÄµ±Ç°ÊµÀý£¬Æäʵ¿´ÁËÏÂÃæÕâ¸öÀý×ӾͺÃÀí½âÁË¡£
Ö÷ÒªÈý¸ö×÷Ó㺵±Ç°ÊµÀý¡¢²ÎÊý´«µÝºÍË÷ÒýÆ÷
1.1 µ±Ç°ÊµÀý
class Team
{
///³ÉÔ±±äÁ¿
private string name;
///¹¹Ô캯Êý
......
c#±à³Ì»ù´¡Ö®¶þ£ºÌØÐÔ ÕâÀïµÄÌØÐÔÇø±ðÓÚÊôÐÔ£¬ËäÈ»msdnÖÐËÆºõ²¢Ã»ÓÐÇø±ð¶þÕß¡£
ÊôÐÔ£ºÊÇÃæÏò¶ÔÏó±à³ÌµÄ»ù±¾¸ÅÄÌṩÁ˶Ô˽ÓÐ×ֶεķÃÎÊ·â×°£¬ÔÚC#ÖÐÒÔgetºÍset·ÃÎÊÆ÷·½·¨ÊµÏֶԿɶÁ¿ÉдÊôÐԵIJÙ×÷£¬ÌṩÁ˰²È«ºÍÁé»îµÄÊý¾Ý·ÃÎÊ·â×°¡£
ÌØÐÔ£º¹«¹²ÓïÑÔÔËÐÐʱÔÊÐíÌí¼ÓÀàËÆ¹Ø¼ü×ÖµÄÃèÊöÉùÃ÷£¬½Ð×öattributes, Ëü¶Ô³ÌÐòÖеÄÔ ......
ÏÈÉùÃ÷£¬ÎÒ²»ÊÇÕâ·½ÃæµÄר¼Ò£¬Ö»ÊǸÉÈí¼þËĸöÔ²»ÖªÌìÓжà¸ßµØÓжàÓ²µÄСº¢×Ó
Ê×ÏÈ£¬ÀàÐÍת»»ÊÇÓÐÒ»¶¨¿ªÏúµÄ
ÎÒÊÔ¹ýÕâÑùµÄ´úÂ룺ÕâÊÇÒ»¸ö¿ØÖÆÌ¨Ó¦ÓóÌÐòµÄProgramÀàµÄ´úÂë
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ÀàÐÍת»»µÄ¿ªÏú
{
class Program
......
ÄãÊ×ÏÈÒªÀí½âһϸÅÄ
Ò» ÀàÐÍ(Type) ¶ÔÏóÊÇʲô
±ÈÈç object x; xÊǶÔÏó£¬object¾ÍÊÇËüµÄÀàÐÍ£¬ÔÚ³ÌÐòÖÐÈçºÎÃèÊöÀàÐÍÕâ¸ö¸ÅÄîÄØ£¿
¾ÍÊÇType(System.Type)¡£Òª»ñȡij¸öÀàµÄÀàÐÍ¿ÉÒÔÓÃtypeof()²Ù×÷·û
object a;object b; DataTable t;
aType = typeof(object);Type bType = typeof(object);tType = typ ......
¶¯Ì¬¼ÓÔØDLLÐèҪʹÓÃWindows APIº¯Êý£ºLoadLibrary¡¢GetProcAddressÒÔ¼°FreeLibrary¡£ÎÒÃÇ¿ÉÒÔʹÓÃDllImportÔÚC#ÖÐʹÓÃÕâÈý¸öº¯Êý¡£
[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);
[DllImport("Kernel32")]
public static extern int L ......