APIを使用してIMetaDataImport
おり、アセンブリ内の型定義が値型か参照型かを判断する必要があります。この情報を明示的に提供する API のメソッドは見つかりませんでした。ただし、基本型を簡単に取得して、それが であるかどうかを確認できますSystem.ValueType
。
私の質問は次のとおりです:基本クラスは、型が値型であるという事実をCLIメタデータがエンコードする唯一の方法ですか、それともこれに対するフラグがどこかにありますか?
APIを使用してIMetaDataImport
おり、アセンブリ内の型定義が値型か参照型かを判断する必要があります。この情報を明示的に提供する API のメソッドは見つかりませんでした。ただし、基本型を簡単に取得して、それが であるかどうかを確認できますSystem.ValueType
。
私の質問は次のとおりです:基本クラスは、型が値型であるという事実をCLIメタデータがエンコードする唯一の方法ですか、それともこれに対するフラグがどこかにありますか?
値の型を直接識別するフラグはありません。他のいくつかのこととともに、基本タイプをチェックすることが、それを行うための標準的な方法のようです。
ECMA CLI 仕様のセクション II.10.1.3 では、次のような型定義について説明しています。
型セマンティック属性は、インターフェイス、クラス、または値の型を定義するかどうかを指定します。interface属性は、インターフェイスを指定します。この属性が存在せず、定義が (直接的または間接的に) 拡張さ
System.ValueType
れ、定義が 用System.Enum
でない場合、値の型が定義されます。それ以外の場合は、クラスを定義する必要があります。
お探しのType.IsValueType
物件はありますか?