Don't cache never/rarely used objects.
Put the dlopen statements in a separate class and only call dlopen when requested when inline selectors are enabled.

This removes one common cause for static constructors.
Remove extra brace, tripping up MonoDevelop's indenter.
Don't cache the class pointer in a static field, use the Class.GetHandle intrinsic instead.