0

我有一个TranscoHelper 我想在我的映射中调用的类的扩展对象。棘手的部分是我想调用我类的几个子类中的方法,而不是主类中的方法。

不幸的是,由于多个子类的方法名称相同,我无法将子类抽象为一个通用类。

我尝试了以下陈述,但没有成功——

<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 回答