12.3 Scoping Types and Type References

The assembly boundary also forms a type accessibility boundary: the C# internal accessibility modifier allows types to restrict method accessibility to a single assembly.

Additionally, references to types are always scoped by the assembly in which the type resides ”the unique reference for a type (known as a TypeRef ) is the combination of a reference to the assembly it was defined in and the fully qualified type name including any namespaces. For example, this local variable declaration:

 System.Net.WebRequest wr; 

is represented in MSIL as follows :

 .assembly extern System.Net { .ver 1:0:2914:16 ... } .locals(class [System.Net]System.Net.WebRequest wr) 

As you can see from this example, in order to reference a type unambiguously, we need to be able to identify the assembly that contains it unambiguously. The .NET Framework's mechanism for naming assemblies is very powerful, and is a giant step beyond the use of ProgIDs and GUIDs in classic COM development.



C# in a Nutshell
C # in a Nutshell, Second Edition
ISBN: 0596005261
EAN: 2147483647
Year: 2005
Pages: 963

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net