How to load a C# dll in python?
This is to answer the second part of your Question
Try making the DLL COM visible.
by using the
[ComVisible(true)]
Ok IronPython is a .net implemenatation of the Python language
The technology is going to use the DLR of the .net 4.0 when it arrives so IronPython will have more Dynamism (is that a word).
(In english if you're a Python guru, you'll feel more at home when you use IronPython)
So you may well choose IronPython, if you do that you can skip the COM visible part. Since both (C# , Iron Python) are under .Net
http://ironpython.net/
Access a function present in C# dll using Python
You haven't made the function visible in the DLL.
There are a few different ways you can do this. The easiest is probably to use the unmanagedexports package. It allows you to call C# functions directly like normal C functions by decorating your function with [DllExport] attribute, like P/Invoke's DllImport. It uses part of the subsystem meant to make C++/CLI mixed managed libraries work.
C# code
class Example
{
[DllExport("ExampleFunction", CallingConvention = CallingConvention.StdCall)]
public static int ExampleFunction(int a, int b)
{
return a + b;
}
}
Python
import ctypes
lib = ctypes.WinDLL('example.dll')
print lib.ExampleFunction(12, 34)
Accessing C# DLL through Python 3.8 using Python.Net (TypeError)
Solution: The classes must be static as I'm not creating a new instance within the python script.
Use .NET dll in Python
Just as a plain and simple answer for others which I was struggling to find.
The dll location needs to be added to the path variable. This can be done simply by importing sys, and invoking the method shown (the path should not include the dll file).
You can then use your dll with Python for .NET (impot clr), by setting up the reference with the AddReference method. Then you're dll is ready to go! An example:
import sys
import clr
sys.path.append(r"C:\Users\...")
clr.AddReference("MyDll")
from mynamespace import myclass
x = myclass()
Use C# DLL in Python
PROBLEM CAUSE:
Python didn't run wrapper from directory where it was stored together with driver. That caused problem with loading driver.
Related Topics
Prevent Property from Being Serialized in Web API
How to Get First Record in Each Group Using Linq
Debugging Automatic Properties
Dependent Dll Is Not Getting Copied to the Build Output Folder in Visual Studio
Injecting Dependencies into ASP.NET MVC 3 Action Filters. What's Wrong with This Approach
How to Return PDF to Browser in MVC
Formatting Text in a Textblock
How to Multi-Target a .Net Core Class Library with Csproj
Iterate Multi-Dimensional Array with Nested Foreach Statement
How Does Wcf Deserialization Instantiate Objects Without Calling a Constructor
Rowspan Does Not Work in Itextsharp
Return HTML from ASP.NET Web API
How to Reference Embedded Images from CSS
How to Verify Text Is Bold Using Selenium on an Angular Website with C#