Sorry, this was the answer to your other question:
...
Why are there ExportedType entries for Inner and Middle? There is no way
to reference such entries as each class is a nested class.
To put it another way, to bind a reference to "Inner", you must follow
the TypeRef's until you location the top-level containing type, then
bind to the assembly containing the top-level type, then bind to the
module containing the top-level type. Now I have the TypeDef for the
top-level type so I can find the TypeDef for "Middle" in "Inner", then
find the TypeDef for "Inner" in "Middle" in "Outer".

I don't seem to need the ExportedType definitions for nested types. What
am I not understanding?
...

-----Original Message-----
From: Serge Lidin [mailto:[EMAIL PROTECTED]]
Sent: Monday, May 13, 2002 8:46 AM
To: [EMAIL PROTECTED]
Subject: Re: [DOTNET] Partition II metadata spec question


You should not forget that the ExportedType table is played by its own rules, and the 
rules are: an exported type can have Implementation (an analog of Resolution Scope in 
TypeRefs) of either a File (for top-level types) or another ExportedType (for nested 
types). If you expose a nested type Foo defined in some module as an ExportedType with 
implementation=File, you in effect claim that there is a top-level type Foo, defined 
in that module. This claim is obviously false, because the type you want to expose is 
nested. That's why you need to declare ExportedTypes for all levels of enclosing types 
if you want to expose a nested type.

Thanks,
Serge

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to