倧åŠã§å匷ããŠãããšãã«ãC ++ã§å®éšå®€ã®äœæ¥ããã§ãã¯ããŠããæåž«ãçªç¶ãããªã#includeâïŒ
library_nameïŒ
ãå¿
èŠãªã®ã§ããïŒããšãã質åãããŸããã åincludeãã£ã¬ã¯ãã£ããå¿
èŠãªã³ãŒãã®ã©ã®éšåã«ã€ããŠèª¬æã§ããŸããïŒããã¯ã©ã¹ã䜿çšããããšãããšãã圌ã®ç®ãåŒããããšãããã£ã¬ã¯ãã£ããè¿œå ãããŸããã ã¯ã©ã¹ã¯ãæããã«å®éšå®€ã«æ ¹ä»ããããã®äœ¿çšã¯å®å
šã«åé€ãããŸããããã€ã³ã¯ã«ãŒãã¯æ®ããŸãã...
Visual Studioã䜿çšããŠCïŒã§ããã°ã©ãã³ã°ããå Žåãæªäœ¿çšã®usingãã£ã¬ã¯ãã£ããæ€åºãããŸãã ããããVisual Studioã¯ãã®åé¡ã«å¯ŸåŠããã®ã«åœ¹ç«ã¡ãŸãã.csãã¡ã€ã«ã§ã³ãã³ããRemove Unused UsingsããåŒã³åºãã ãã§ååã§ãã 確ãã«ãæã
æé€ããããã«å·ã€ããªãå¥ã®å ŽæããããŸãã ãããã¯ãããžã§ã¯ãã®åç
§ã§ãã æ²ããããšã«ãCïŒãããžã§ã¯ãã«ã¯ãã®ãããªã³ãã³ãã¯ãããŸããã MS Connectã¯ããã«é¢ãã
ãã°ãäœæããŸããã ããããVB.NETãããžã§ã¯ãã«ã¯ãã®ãããªæ©èœããããŸãïŒãããžã§ã¯ãã®ããããã£ã§èŠã€ããããšãã§ããŸãïŒããç®èãªããšã«ãVB.NETãããžã§ã¯ããæªäœ¿çšã®ã€ã³ããŒããåé€ããã³ãã³ãã¯ãããŸããïŒCïŒã§äœ¿çšïŒ:)
ååã®ããã«è¯ãããšãããããšããæžæã«æ¯ããããŠãç¬ç«ç³»éçºè
ã¯Visual Studioã®å°ããªæ¡åŒµæ©èœãæžãããšã«ããŸããã ãããŠãVisual Studio 2010ã®Extension Managerããããæ¡åŒµæ©èœã®é
åžããã»ã¹ãç°¡çŽ åããŸããã
ãããš
ããã§ãã®ãããªæ¡åŒµã®äŸãèŠã€ããããšãã§ã
ãŸã ã ãããã®æ¡åŒµæ©èœã§äœ¿çšãããã¢ã«ãŽãªãºã ãå€æããããšã¯äžå¯èœã§ãã æåã®æ¡åŒµæ©èœããããžã§ã¯ãããæ¥ç¥ããã«åé€ãããåŸãã³ã³ãã€ã«ã«æ¬åœã«å¿
èŠãªã¢ã»ã³ããªã®ãŸãšããªéšåãé ãããšã¯ããŸãããããŸã ãªãã¬ã¯ã¿ãŒã§ãããèŠãŸãã...ç§ãã¡ã¯ãã2çªç®ã®ãã®ãæ±ããŸããã§ããã äžè¬çã«ãåé¡ã¯åãã§ãããããŒãã¬ãŒãºã¯åã®æã§èŠã€ããããšãã§ããŸãïŒã³ã³ãã€ã«ã«å¿
èŠã§ãã
ç°¡åãªäŸãèããŠã¿ãŸãããã 3ã€ã®ãããžã§ã¯ã-3ã€ã®ã¢ã»ã³ããªããããšããŸãã Assembly_Aã¯Class_Aã¯ã©ã¹ãå®çŸ©ããAssembly_Bã¯Assembly_Aã®Class_Aã¯ã©ã¹ããç¶æ¿ããClass_Bã¯ã©ã¹ãå®çŸ©ããŸãã åã¯ã©ã¹ã«ã¯ç°ãªãã¡ãœããããããŸããããšãã°ãClass_Aã¯ã©ã¹ã®ã¡ãœããã¯Method_Aã§ãClass_Bã¯ã©ã¹ã®ã¡ãœããã¯Method_Bã§ãã 3çªç®ã®ã¢ã»ã³ããªïŒAssembly_CïŒã§ã¯ãClass_Bã¯ã©ã¹ã䜿çšããŸãã ãããè¡ãã«ã¯ããããžã§ã¯ãã®ã¢ã»ã³ããªAssembly_Aããã³Assembly_Bãžã®åç
§ãè¿œå ãããã®åŸããã€ãã®ã¯ã©ã¹ã§Class_Bã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããMethod_Bã¡ãœãããåŒã³åºããŠãããžã§ã¯ããã³ã³ãã€ã«ããŸãã Assembly_Cã®æºåãã§ããŸãããildasm.exeã§éãããããã§ã¹ããèŠãŠã¿ãŸãããã
// Metadata version: v4.0.30319
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly extern Assembly_B
{
.ver 1:0:0:0
}
.assembly Assembly_C
{
//
}
.module Assembly_C.exe
// MVID: {B387984A-3515-4B26-9450-592FCF5FB6FA}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000003 // ILONLY 32BITREQUIRED
// Image base : 0x014C0000
* This source code was highlighted with Source Code Highlighter .
ããã¯ã©ãããããšã§ããïŒïŒ Assembly_Aã¯ãããžã§ã¯ãã«è¿œå ããŸããããå¿
èŠãããŸãããïŒ Visual Studioãéããã¢ã»ã³ããªåç
§Assembly_AãAssembly_Cãããžã§ã¯ãããåé€ããŸãã ã³ã³ãã€ã«ããŠ...ãšã©ãŒãååŸããŸãããå 'Assembly_A.Class_A'ã¯ãåç
§ãããŠããªãã¢ã»ã³ããªã§å®çŸ©ãããŠããŸãã ã¢ã»ã³ã㪠'Assembly_AãããŒãžã§ã³= 1.0.0.0ãã«ã«ãã£ãŒ=ãã¥ãŒãã©ã«ãPublicKeyToken = null'ãžã®åç
§ãè¿œå ããå¿
èŠããããŸãã
ãã®åäœã®çç±ãç解ããããšãéèŠã§ãã ãããžã§ã¯ãã®ã©ãã«ãã¢ã»ã³ããªã¿ã€ãAssembly_Aãžã®æ瀺çãªã¢ã¯ã»ã¹ã¯ãªãããããã®ã¢ã»ã³ããªãžã®åç
§ã¯ãããžã§ã¯ãã¢ã»ã³ããªïŒAssembly_CïŒã®ãããã§ã¹ãã«å«ãŸããŸããã åæã«ãã¢ã»ã³ããªã¿ã€ãAssembly_Bã®1ã€ããããžã§ã¯ãã§äœ¿çšãããŸãã å®éãã©ã³ã¿ã€ã ã«ã¯ãã¢ã»ã³ããªAssembly_Bãžã®åç
§ãããã°ååã§ãã ãããŠãäŸåããã¢ã»ã³ããªã¯ããããã§ã¹ãããCLRãåãåããåãæ¹æ³ã§èªã¿èŸŒã¿ãŸãã ãã ããã³ã³ãã€ã©ãŒïŒã³ã³ãã€ã«æïŒã®å ŽåãAssembly_Cãããžã§ã¯ãã§Assembly_Bã¢ã»ã³ããªãŒãšAssembly_Aã¢ã»ã³ããªãŒãžã®åç
§ãæã€ããšãéèŠã§ããå
ç¥ãå«ã䜿çšæžã¿ã®Class_Bã¯ã©ã¹ã«é¢ãããã¹ãŠãç¥ã£ãŠããå¿
èŠãããããã§ãã ãã«ãã®äŸåé¢ä¿ã«é¢ããåªããèšäºãMSDN Magazineã«æ²èŒãã
ãŸãã ã
ãã¡ãã§èªãããšãã§ã
ãŸã ã
ã¯ã©ã¹ããããžã§ã¯ãã®ã©ãã§äœ¿çšãããŠãããã¯é¢ä¿ãããŸãããã¯ã©ã¹ã®ãã£ãŒã«ããšããŠãã¡ãœããã®ãã©ã¡ãŒã¿ãŒãšããŠãå±æ§ãšããŠãªã©ã ã³ã³ãã€ã©ãŒã¯ããããžã§ã¯ãã§äœ¿çšããããã¹ãŠã®ã¿ã€ãã«é¢ããå®å
šãªæ
å ±ãååŸã§ããå¿
èŠãããããšãç解ããããšãéèŠã§ãã ã¯ã©ã¹ã¯åãã¢ã»ã³ããªã®ç°ãªãããŒãžã§ã³ã«ååšããå¯èœæ§ãããããã䜿çšããã¢ã»ã³ããªãæ確ã«æå®ããå¿
èŠããããŸãïŒã³ã³ãã€ã©ãŒãïŒããšãã°GACã§ïŒã¢ã»ã³ããªãŒãèŠã€ããããšãã§ããå Žåã§ããè€æ°ããå Žåã¯ã©ã®ããã«1ã€ãéžæã§ããŸããïŒïŒ ããã¯ããããžã§ã¯ãã§äœ¿çšãããŠããªãã¢ã»ã³ããªãèŠã€ããããšãã§ããããã°ã©ã ãéçºããéã®äž»ãªã¢ã€ãã¢ã§ããã¯ãã§ãã ã³ã³ãã€ã«ã«å¿
èŠã®ãªããã®ãããªã¢ã»ã³ããªã
ãããžã§ã¯ãã®ã¯ã©ã¹ã®äŸåé¢ä¿ã®ç 究ã¯ã
Lardite Groupã§éçºãã
Reference Assistantæ¡åŒµæ©èœã®åºç€ãšãªããŸãã ããã¯
Visual Studio Galleryã§å©çšå¯èœãªç¡æã®æ¡åŒµæ©èœã§ãããCodePlexã®ãããžã§ã¯ãããŒãžããåç
§ã¢ã·ã¹ã¿ã³ãã®ãœãŒã¹ã³ãŒããããŠã³ããŒãããããšãã§ããŸãã
Reference Assistantãéå§ãããã®ã¯ãã¯ã©ã¹éå±€ã®åæã§ããã 次第ã«ãã€ã³ã¿ãŒãã§ã€ã¹ã®éå±€ã®åæããã©ã¡ãŒã¿ãŒã®å±æ§ãšåã®åæãã€ã³ããŒããããåïŒããšãã°ãCOMã©ã€ãã©ãªããïŒã®åæãå¥ã®ã¢ã»ã³ããªã«
移åããã
åãè¿œå ãããŸããã ã¯ããããã€ããããŸãïŒ ç°¡åãªäŸ-ObservableCollectionã¯ãWindowsBase.dllïŒfx3.5ïŒã®ã¢ã»ã³ããªããSystem.dllïŒfx4.0ïŒã«ç§»è¡ãããŸããã
ãªãŒããŒããŒããããã¡ãœããåæã®äŸã奜ãã§ãã ã¯ã©ã¹Class_BãAssembly_Bã¢ã»ã³ããªã§å®çŸ©ãããŠãããSetCodeã¡ãœããããªãŒããŒããŒããããŠãããšããŸãã 2ã€ã®ãªãŒããŒããŒãã1ã€ã®ãã©ã¡ãŒã¿ãŒãåãããã«ããŸãã1ã€ã¯System.Int32åããã1ã€ã¯Assembly_A.Class_Aåã§ãã ãããžã§ã¯ãã¢ã»ã³ããªïŒAssembly_CïŒã§ã1ã€ã®ãã©ã¡ãŒã¿ãŒãåããClass_Bã¯ã©ã¹ã®ãªãŒããŒããŒããããSetCodeã¡ãœããã®1ã€ãåŒã³åºãããŸãã ãã®å Žåãã³ã³ãã€ã©ã¯ãæé©ãªã¡ãœãããéžæããããã«ãäž¡æ¹ã®ã¡ãœããã®ãã©ã¡ãŒã¿ãŒã¿ã€ãã«é¢ãããã¹ãŠãç¥ã£ãŠããå¿
èŠããããŸãã ãããŠãããã¯ãéå±€ã«å«ãŸããåã®å®çŸ©ãããã¢ã»ã³ããªããããžã§ã¯ããªã³ã¯ã«ããããšãæå³ããŸãã ã€ãŸã ãã®å ŽåãAssembly_Cãããžã§ã¯ãã®åç
§ã«ã¯ãã¢ã»ã³ããªAssembly_Aããã³Assembly_Bãžã®åç
§ãå¿
èŠã§ãã ã³ãŒãã®åœ¢åŒã§èª¬æãããŠããäŸïŒ
// Assembly_A.dll
namespace Assembly_A
{
public class Class_A
{
public int Code { get ; set ; }
}
}
// Assembly_B.dll
using Assembly_A;
namespace Assembly_B
{
public class Class_B
{
public void SetCode( int code)
{
// some actionsâŠ
}
public void SetCode(Class_A code)
{
// some actionsâŠ
}
}
}
// Assembly_C.dll (, Assembly_B)
using Assembly_B;
namespace Assembly_C
{
public class Class_C
{
public void Run()
{
// some actionsâŠ
var classB = new Class_B();
classB.SetCode(1);
// some actionsâŠ
}
}
}
* This source code was highlighted with Source Code Highlighter .
ããã¯ç§ãäŒãããã£ãæãåºæ¬çãªããšã§ãã ãã¡ãããéçºäžã«å€ãã®ãã¥ã¢ã³ã¹ã«çŽé¢ããŸãããã1ã€ã®èšäºã§èª¬æããã«ã¯å€ãããŸãã ããããç§ãã¡ã¯ç¢ºãã«ä»ã®èšäºã§æãèå³æ·±ããã®ã«ã€ããŠæžãããšãè©Šã¿ãŸãã çµè«ãšããŠããªãã¡ã¬ã³ã¹ã¢ã·ã¹ã¿ã³ãã®äœ¿çšã«ã€ããŠããã€ã説æããŸãã
åè¿°ããããã«ã
CodePlexãŸãã¯
Visual Studio GalleryããReference AssistantãããŠã³ããŒãã§ããŸãã ãããã«ã¯ããããªéãããããŸã-Galleryã§ã¬ã€ã¢ãŠããããæ¡åŒµæ©èœã¯ãVisual Studioã®Expressãšãã£ã·ã§ã³ã§ã¯äœ¿çšã§ããŸããïŒããã¯Visual Studioã®ã£ã©ãªãŒã®å¶éã§ãïŒããCodePlexã§ã®æ¡åŒµã¯å¯èœã§ãã
æãç°¡åãªã€ã³ã¹ããŒã«æ¹æ³ã¯ãVisual StudioãŠãŒãã£ãªãã£ã§ããExtension Managerã䜿çšããããšã§ãã
ãããžã§ã¯ããŸãã¯ãããžã§ã¯ããªã³ã¯ã®ã³ã³ããã¹ãã¡ãã¥ãŒïŒ[åç
§]ãã©ã«ããŒïŒã§æªäœ¿çšã®ã¢ã»ã³ããªãåé€ããã«ã¯ã[æªäœ¿çšã®åç
§ãåé€]ãéžæããŸãã
æªäœ¿çšã®ã¢ã»ã³ããªãåé€ããåã«ããªã¹ãã確èªãããŠã£ã³ããŠã衚瀺ãããŸãã äœããã®çç±ã§ã¢ã»ã³ããªãå¿
èŠã§ããããšã確å®ãªå Žåã¯ããã®ãªã¹ããç·šéã§ããŸãïŒããšãã°ãæ§æãã¡ã€ã«ã®èšå®ã«å¿ããŠãã¢ããªã±ãŒã·ã§ã³ã«åçã«æ¥ç¶ãããŸãïŒã
ã次åãããã®ãã€ã¢ãã°ã衚瀺ããªãããªãã·ã§ã³ã䜿çšããŠããæªäœ¿çšã®åç
§ãªã¹ãããŠã£ã³ããŠã®è¡šç€ºãç¡å¹ã«ããããšãã§ããŸãã æ¡åŒµèšå®ã§å床æå¹ã«ããããšãã§ããŸãïŒã¡ãã¥ãŒããŒã«->ãªãã·ã§ã³...->ãªãã¡ã¬ã³ã¹ã¢ã·ã¹ã¿ã³ãã
詳现ã«ã€ããŠã¯ãããŠã³ããŒãã»ã¯ã·ã§ã³ã®
http://refassistant.codeplex.comã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãŠãŒã¶ãŒã¬ã€ãã§ã¯ãReference Assistantã®äœ¿çšæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã ãŸãããšã©ãŒãã®ã³ã°ãæå¹ã«ããæ¹æ³ã«ã€ããŠã説æããŸãã RefAssistant [at] lardite.comã§ãšã©ãŒã®èª¬æãéä¿¡ãããã
ãšã©ãŒãã©ãã«ãŒã«ç»é²ããŠ
ãã ãã ã éçºè
ã¬ã€ãã§ã¯ããããžã§ã¯ããåç
§ããã¢ã»ã³ããªã®è©äŸ¡åºæºã«ã€ããŠèª¬æããæ¡åŒµæ©èœã®äžè¬çãªã¢ãŒããã¯ãã£ã®æŠå¿µã瀺ããŸãã