2013-10-07 58 views
0

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

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

我尝试下面的语句,但没有成功 -

<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

这是我在MSDN提供了相同的答案:

我不认为这会工作,因为扩展添加的情况下,我记得那么多。

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

所以,你必须为你需要使用的每个单独的类添加一个扩展。或者,将方法添加到调用Subclass1/2静态方法的TranscoHelper。

+0

谢谢你的好解释! –