2013-10-07 62 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

謝謝你的好解釋! –