Microsoft .NET Framework
Load a 64-bit C# library (a .NET Framework) in 64-bit Python (view the
C# source code). Include the 'net' argument to
indicate that the .dll file is for the .NET Framework.
To load the 32-bit version in 32-bit Python use '/dotnet_lib32.dll'.
Tip
'clr' is an alias for 'net' and can also be used as the libtype
>>> from msl.loadlib import LoadLibrary
>>> from msl.examples.loadlib import EXAMPLES_DIR
>>> net = LoadLibrary(EXAMPLES_DIR + '/dotnet_lib64.dll', 'net')
The dotnet_lib64 library contains a reference to the
DotNetMSL module (which is a C# namespace), the StaticClass class,
the StringManipulation class and the System namespace
Create an instance of the BasicMath class in the DotNetMSL namespace
and call the multiply_doubles method
>>> bm = net.lib.DotNetMSL.BasicMath()
>>> bm.multiply_doubles(2.3, 5.6)
12.879999...
Create an instance of the ArrayManipulation class in the DotNetMSL
namespace and call the scalar_multiply method
>>> am = net.lib.DotNetMSL.ArrayManipulation()
>>> values = am.scalar_multiply(2., [1., 2., 3., 4., 5.])
>>> values
<System.Double[] object at ...>
>>> [val for val in values]
[2.0, 4.0, 6.0, 8.0, 10.0]
Use the reverse_string method in the StringManipulation class to
reverse a string
>>> net.lib.StringManipulation().reverse_string('abcdefghijklmnopqrstuvwxyz')
'zyxwvutsrqponmlkjihgfedcba'
Use the static add_multiple method in the StaticClass class to add
five integers
>>> net.lib.StaticClass.add_multiple(1, 2, 3, 4, 5)
15
One can create objects from the System namespace,
>>> System = net.lib.System
for example, to create a 32-bit signed integer,
>>> System.Int32(9)
<System.Int32 object at ...>
or, a one-dimensional Array of the specified Type
>>> array = System.Array[int](list(range(10)))
>>> array
<System.Int32[] object at ...>
>>> list(array)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> array[0] = -1
>>> list(array)
[-1, 1, 2, 3, 4, 5, 6, 7, 8, 9]