XSLT Extension Objects
Extension objects are used to extend the functionality of style sheets. Extension objects are maintained by the XsltArgumentList class.
The following are advantages to using an extension object rather than embedded script:
Provides better encapsulation and reuse of classes.
Allows style sheets to be smaller and more maintainable.
The data types returned from extension objects are one of the four basic XPath data types of number, string, Boolean, and node set.
Any method that is defined with the params keyword, which allows an unspecified number of parameters to be passed, is not currently supported by the XslCompiledTransform class. XSLT style sheets that utilize any method defined with the params keyword will not work correctly. For details, see params (C# Reference).