0

TranscoHelper マッピングで呼び出したいクラスの拡張オブジェクトがあります。注意が必要なのは、メインクラスのメソッドではなく、クラスのいくつかのサブクラスのメソッドを呼び出したいということです。

残念ながら、複数のサブクラスでメソッド名が同じであるため、サブクラスを 1 つの汎用クラスに抽象化することはできません。

次のステートメントを試しましたが、成功しませんでした –

<xsl:value-of select="transco:SubClass1.Method1()"/>

誰かがこの動作を達成しましたか、それとも単に不可能ですか? あまり魅力的でない解決策は、すべてのサブクラスの拡張オブジェクトに参照を追加し、メイン クラスを取り除くことですが、可能であればそれは避けたいと思います...</p>

私のクラスのダミーバージョンは次のようになります -

public class TranscoHelper
{

    public class SubClass1 : TranscoBase
    {
        public static string Method1() 
        {
            return "Method1";
        }
    }


    public class SubClass2 : TranscoBase
    {       
        public static string Method1()
        {
            return "Method2";
        }
    }
}
4

1 に答える 1

1

これは、私が MSDN で提供したのと同じ回答です。

私が覚えている限り、拡張機能はインスタンスとして追加されるため、うまくいかないと思います。

TranscoHelper のインスタンスに、Subclass1 または Subclass2 のインスタンスが自動的に含まれることはありません。

したがって、使用する必要がある個々のクラスごとに拡張機能を追加する必要があります。または、Subclass1/2 静的メソッドを呼び出すメソッドを TranscoHelper に追加します。

于 2013-10-07T18:03:37.347 に答える