入れ子になった列挙型でクラスを作成したいと思います。System.Reflection.Emitの入れ子になった列挙体
public class Foo
{
public enum Views
{
}
}
しかしSystem.Reflection.Emit.TypeBuilderクラスにはDefineNestedEnumのみDefinedNestedTypeを持っていません。 ModuleBuilder.DefineEnumは私に列挙型を作成させますが、入れ子にする方法はありません。列挙型を作成せずに(EnumBuilderを使用して)作成できますか?
解決策を以下のように変更しました。
私の言ったこととどう違うのですか?定数値を持つフィールドを定義してSystem.Enumから継承する入れ子型です。 しかし、MSDNの例では、ネストされたenumを作成するための継承サポートがないことを示しているようです。 –
ポイントは:それは入れ子になった列挙型です - 定数値を持つフィールドを定義するSystem.Enumから継承する入れ子型です。 MSDNサンプルが発行したアセンブリで生成されたものをリフレクターで調べ、ネストされた列挙型でC#クラスをコンパイルすることによって生成された入れ子になった列挙型と比較します。 – jlew
もう一度、リンクしたMSDNの記事は、もともと私が質問に投稿した内容(および回答に移動した内容)とは異なっていますか? 私の質問は、enumを偽装する方法ではありません(私は明らかにそれをカバーしています)。 EnumBuilderはEnumBuilderの実際の内容をすべて網羅していますが、EnumBuilderを取得して入れ子にする方法はありません。 –