In unoptimized model, the intermediate metadata tables such as MethodPtr are used. In this model, TypeDef's Method entry contains RID not in Method table, but in MethodPtr table, and the referenced record in MethodPtr table contains RID in the Method table. The type's records in MethodPtr table are contiguous, but in Method table they are not.
The following intermediate tables are used only in unoptimized metadata: MethodPtr, FieldPtr, ParamPtr, EventPtr, PropertyPtr. There are also a couple tables specific to edit-and-continue -- ENCLog and ENCMap -- which are used in unoptimized model only. In optimized model all these tables are empty. Thanks, Serge -----Original Message----- From: Unmoderated discussion of advanced .NET topics. [mailto:[EMAIL PROTECTED] Behalf Of Fabian Schmied Sent: Monday, June 21, 2004 11:59 AM To: [EMAIL PROTECTED] Subject: Re: [ADVANCED-DOTNET] Metadata question > Unfortunately, you can't rely on the type's method tokens to be in > contiguous sequence. This is characteristic of optimized metadata only > ("#~" metadata stream). How do you associate the method to its type when the tokens are not contiguous? The MethodDef table does not contain a TypeDef token. Am I missing something here? But, of course, you are right: I wouldn't be able to use DefineMethod of the unmanaged metadata API if the method tokens always had to be in order. But how could that information be stored in the metadata tables when unoptimized? Fabian =================================== This list is hosted by DevelopMentorŪ http://www.develop.com Some .NET courses you may be interested in: NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com =================================== This list is hosted by DevelopMentorŪ http://www.develop.com Some .NET courses you may be interested in: NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com