.NET, sözde uzantı nesnesini kullanarak XSLT'yi genişletmeye izin verir. Çok kullanışlı ve çok uygun.XSLT uzantısı nesne yönteminden izin verilen .NET dönüşü türleri nelerdir?
<xsl:value-of select="someprefix:VerySmartStringConcat(nodes[@withsomeattribute])"/>
tek şey bunu yapmak için gerekenler: Eğer XSLT parçası olarak VerySmartStringConcat başvurabilirsiniz (aşağıya bakın) biraz sihir bekleyen
public class VeryHandyExtensionFunctions
{
public string VerySmartStringConcat(XPathNodeIterator NodeList)
{
return "some very smart string concat based on NodeList";
}
}
: Bir sınıf oluşturarak bunu ho bulmaktan
XsltArgumentList xsltArg = new XsltArgumentList();
xsltArg.AddExtensionObject("SomeUriResolvingToSomePrefix",new VeryHandyExtensionFunctions);
XslCompiledTransform xslTransform;
XmlWriter W = XmlWriter.Create(SomeTarget, Xslt.OutputSettings);
xslTransform.Transform(SomeXmlDocument, xsltArg, W);
NET oldukça akıllıdır: gerçekleşmesi bir XsltArgumentList kullanarak, XslCompiledTransform sınıfına (yukarıdaki VeryHandyExtensionFunctions) Uzantınız sınıfının bir örneğini geçmektir w, giriş parametrelerinin giriş tiplerine & dönüş türlerine dönüşü. Ancak, her defasında bir arada bir destek türü hakkında şikayet ediyor. Desteklenen türler nelerdir?
@Boaz: Evet, bu cevaptır. Soruyu kapatır mısın lütfen? –