C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA

レイヤーの扱いを考える3

こちらの続きです。
レイヤーの扱いを考える2 - C#ATIA
拡張メソッド用のクラスです。

    //cs
    static class CatExtension {
        public static CatiaContainer State { get; set; }

        public static int GetLayer(this HybridShape hy) {
            State.Selection.Clear();
            State.Selection.Add(hy);
            CatVisLayerType Layertype;
            int Layer;
            State.Selection.VisProperties.GetLayer(out Layertype, out Layer);
            return Layer;
        }
    }

ソース自体はVBAと大差無いです。単にGetLayerの戻り値をレイヤー番号に
しただけです。
静的クラスの拡張メソッド内で、Selectionを利用することに
なるのですが、静的クラスの場合フィールドを持たせる事が出来ないため、
仕方がないので、プロパティとしてCatiaContainerクラスのインスタンス
持たせることにしてみました。
このような場合、プロの方とかはどのようにするものなのでしょう?