带有子类的XSLT中的扩展对象

时间:2013-10-07 14:47:59

标签: xslt biztalk

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

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

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

  

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

有没有人完成这种行为或者这是不可能的?  不太吸引人的解决方案是在扩展对象中为每个子类添加一个引用并删除主类,但是如果可能的话我想避免这样做......

我班级的虚拟版本如下所示 -

public class TranscoHelper
{

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


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

1 个答案:

答案 0 :(得分:1)

以下是我在MSDN上提供的相同答案:

我认为这不会起作用,因为扩展名作为实例添加,就像我记得的那样。

TranscoHelper的实例不会自动包含Subclass1或Subclass2的实例。

因此,您必须为您需要使用的每个类添加扩展名。或者,向TranscoHelper添加调用Subclass1 / 2静态方法的方法。