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 -----Original Message----- From: Brent E. Rector [mailto:[EMAIL PROTECTED]] Sent: Saturday, May 11, 2002 11:38 PM To: [EMAIL PROTECTED] Subject: [DOTNET] Partition II metadata spec question Re: the InterfaceImpl table. In the metadata, the interfaces implemented by a type consume a contiguous range in the InterfaceImpl table. That is, it's possible to specify the interfaces implemented by a type using a tuple consisting of the indices of first and last entries for the type in the InterfaceImpl table. Some other metadata tables explicitly support using such references (Field, Method). However there is no such guarantee in the spec for the InterfaceImpl table. Will the InterfaceImpl table always have a type's interfaces listed in a contiguous range? (I'm assuming that Class==0 entries are ignored.) Brent Rector Demeanor for .NET - the premier .NET obfuscation utility http://www.wiseowl.com/Products/Products.aspx You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.