Úvod do zhromaždenia Youyuan Vieme, že členovia triedy, ktorí sú definovaní ako interní (vrátane typov, metód, vlastností, premenných, udalostí), môžu byť prístupní len v tej istej zostave (samozrejme, hovorím o bežnom spôsobe, nepočítajúc prístup cez reflexiu). Toto pravidlo je v . .NET 2.0 je mierne nefunkčný, čo nám umožňuje nastaviť prístup k interným členom zostavy pre konkrétnych členov. Zostavu, ktorá obsahuje týchto vnútorných členov, nazývame zdrojová zostava a táto množina sa nazýva priateľská zostava.
Použitie v priateľskom zhromaždení Tento atribút sa používa na úrovni zostavenia.
Týmto spôsobom, po tom, čo program FriendAssembly odkazuje na assembler, môže pristupovať k internej vlastnosti Name. Všeobecne platí, že táto zostava:InternalsVisibleTo ("FriendAssembly") je lepšie umiestnená v AssemblyInfo.cs, veď je na úrovni zostavenia.
Kedy použiť InternalsToVisibleTo V skutočnosti sa tento atribút vo všeobecných aplikáciách nepoužíva a nemali by sme ho zneužívať. Pretože vo všeobecnosti dobre navrhnutá zostava nemusí byť otvorená vonkajšiemu svetu. Ale scenáre jednotkového testovania môžu túto funkciu využiť. S touto funkciou môžeme špecifikovať, že kód pre jednotkové testy má prístup k týmto interným členom, aby sme ich mohli jednotkovo testovať. Avšak to vyžaduje, aby názov friend assembly bol mŕtvy v zdrojovom kóde, čo spôsobuje určité bezpečnostné problémy. Bezpečnosť môže byť zaručená zavedením podpisových zostáv.
InternalsToVisibleTo a signature assembly Môžete priamo špecifikovať názov a verejný kľúč priateľskej meta zostavy do InternalsVisibleTo. Použite príkazový riadok pre vývojárov VS na vygenerovanie verejného kľúča pre FriendAssembly:
Špecifikujte názov friend assembly a verejný kľúč k zdrojovému assembly:
V skutočnosti, keďže priateľské zhromaždenie odkazuje na zdrojové zhromaždenie, a podpísané zhromaždenie odkazuje na nepodpísané zhromaždenie, a podpísané zhromaždenie nemôže špecifikovať nepodpísané priateľské zhromaždenie, ktorékoľvek z nich je podpísané, potom musia byť podpísané.
|