Class NativeLibrary
Inheritance
System.Object
NativeLibrary
Implements
System.IDisposable
Assembly: IronOcr.dll
Syntax
public class NativeLibrary : Object
Loading a platform native library and resolving its exported functions at runtime runs through NativeLibrary. It wraps a handle to a loaded shared library (a .dll, .so, or .dylib) and hands back typed delegates for the entry points you name, so cross-platform native interop can sit behind one managed object instead of scattered DllImport declarations.
Construct one with new NativeLibrary(string), passing the library name or path; the constructor loads the binary through the platform loader. From the loaded library you resolve functions by name, and you dispose the object when finished. Most IronOCR code never touches this type directly, since the engine loads its own Tesseract and Leptonica binaries internally; it is the seam exposed for deployment scenarios where you load a native dependency yourself.
The members are deliberately few. Handle is the raw IntPtr to the loaded module for code that needs to call into the platform directly. LoadFunction(string name) resolves an exported symbol and returns its address as an IntPtr, while the generic LoadFunction<T>(string name) returns the entry point already marshaled to a delegate type T, which is the form most callers want. Loader is the protected LibraryLoader a subclass can override to change how binaries are located. Because the type implements IDisposable, hold it in a using so the native handle is released, and resolve every function you need from the single instance rather than reloading the library.
using IronSoftware.Deployment;
using var library = new NativeLibrary("mylib");
var compute = library.LoadFunction<ComputeDelegate>("compute");
int result = compute(21);
The Linux deployment guide covers native dependencies on Linux, the Docker guide handles container images, and the advanced installation guide explains the native package layout.
Constructors
NativeLibrary(String)
Declaration
public NativeLibrary(string name_in)
Parameters
| Type |
Name |
Description |
| System.String |
name_in |
|
Properties
Handle
Declaration
public IntPtr Handle { get; }
Property Value
| Type |
Description |
| System.IntPtr |
|
Loader
Declaration
protected virtual LibraryLoader Loader { get; }
Property Value
| Type |
Description |
| IronSoftware.Deployment.LibraryLoader |
|
Methods
Dispose()
Declaration
LoadFunction(String)
Declaration
public IntPtr LoadFunction(string name)
Parameters
| Type |
Name |
Description |
| System.String |
name |
|
Returns
| Type |
Description |
| System.IntPtr |
|
LoadFunction<T>()
Declaration
public T LoadFunction<T>()
Returns
Type Parameters
LoadFunction<T>(String)
Declaration
public T LoadFunction<T>(string name)
Parameters
| Type |
Name |
Description |
| System.String |
name |
|
Returns
Type Parameters
Implements
System.IDisposable