我們如何從Xslt中的靜態類訪問靜態方法?靜態類已經在程序集中定義。如何從Xslt中的現有程序集訪問C#靜態方法(可能在靜態類中)?
這裏是靜態類我想引用
namespace Helper
{
public static class StaticXsltHelper
{
public static double CalclutePerctange(int a, int b)
{
return b == 0 ? 0 : ((double)a * 100)/b;
}
}
}
的定義,我們如何在XSLT參考StaticXsltHelper.CalclutePerctange
方法?
對於非靜態類和非靜態方法,我可以使用下面的語法
XslCompiledTransform t = new XslCompiledTransform();
XsltArgumentList l = new XsltArgumentList();
l.AddExtensionObject("a:b", new XsltHelper());
t.Load("XSLTFile.xslt", new XsltSettings(true, true), null);
using (StreamWriter w = new StreamWriter("XMLFileOut.xml"))
{
t.Transform("XMLFile.xml", l, w);
}
這裏是XsltHelper類的定義
namespace Helper
{
public class XsltHelper
{
public double CalclutePerctange(int a, int b)
{
return b == 0 ? 0 : ((double)a * 100)/b;
}
}
}
而且XSLT看起來像
<xsl:stylesheet version="1.0" xmlns:prefix_1="http://www.w3.org/2001/XMLSchema-instance" xmlns:helper="a:b" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:for-each select="Entity">
<Entity>
<Percent>
<xsl:value-of select="helper:CalclutePerctange(Value, Total)"/>
</Percent>
但我沒有找到關於靜態方法的任何信息。
任何形式的幫助/評論將不勝感激。另外我想知道這是否可能。
目前還不清楚你在問什麼。爲什麼你不能在靜態方法中使用它? – Servy
對此感到抱歉。基本上我想在Xslt中使用現有的靜態方法。 – malay
什麼是現有的靜態方法,如何做,以及當您嘗試使用它們時會發生什麼? – Servy