Calling .NET Constructors
.NET class constructors are called by using the function named
new(). If there are several constructors, then again the system tries to find
the one that is the best fit, according to the types of the supplied arguments. The result
new() is an XPath value whose type is denoted by a QName whose local
name is the actual .NET class (for example
System.Collections.ArrayList) and whose namespace URI is
http://saxon.sf.net/clitype. The only things that can be done with a wrapped
.NET Object are to assign it to a variable, to pass it to an extension function, and to
convert it to a string or boolean, using the rules given below.
The use of external object types in namespace
reflects the .NET type hierarchy. For example, if a variable is declared to accept a type of
net:System.Collections.IList, then a value of type
net:System.Collections.ArrayList will be accepted, but a value of type
net:System.Collections.HashTable will not.