GetConstructors 与 _baseType.GetMethod("GetConstructorImpl", BindingFlags.NonPublic | BindingFlags.Instance)

GetConstructors vs. _baseType.GetMethod("GetConstructorImpl", BindingFlags.NonPublic | BindingFlags.Instance)

TYPE.GetConstructor(...)TYPE.GetMethod("GetConstructorImpl", ...) 之间的 c#/.net 4.5.1 有区别吗?

我一直使用第一个解决方案,并在外部库中看到了第二个解决方案。

非常感谢

Type.GetConstructor()(及其所有重载)是 Type class 的 public 方法(非虚拟),用于搜索构造函数.他们在内部调用 Type.GetConstructorImpl(),这是一个 protected abstract 方法,由 Type 的子 class 实现(通常为 RuntimeType)。你不应该使用 Type.GetConstructorImpl() (注意你通常不能......它是受保护的)。 Type.GetConstructor() 代码非常简单,只在调用 Type.GetConstructorImpl() 之前做一些参数检查。您可以通过查看 reference source 轻松地检查这一点。我不知道为什么你的图书馆使用 GetConstructoImpl().