C#库便于动态反射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#库便于动态反射相关的知识,希望对你有一定的参考价值。

是否有任何库(如开源项目等)可以更容易地使用复杂的反射,如动态创建对象或类,检查实例等?

谢谢

答案

有一个LinFu库可以做很多其他有趣的东西而不是反射...试试吧

另一答案

在我看来,我不认为反射可以比现在更容易使用。几乎所有核心​​功能都包含在Type类中。花点时间了解它是如何工作的,你不需要另外一个不必要的层。

具体来说,你可以做“复杂的事情”,就像创建未初始化的对象一样:

// Instantiates an uninitialized object of the specified type.
var newObject = (MyObject)FormatterServices.GetUninitializedObject( elementType );
另一答案

那里有一些有趣的ReflectionHelpers

另一答案

根据定义,反思很难。它是整个对象结构的间接级别。我不确定如何在不限制其力量的情况下使其变得更容易。

另一答案

如果反思很难,那么您可能无法完全理解.Net的基础知识。您可能想尝试像this这样的教程。

另一答案

MS单元测试程序集具有PrivateObject和PrivateType,可以非常直接地访问私有实例/类型成员。

另一答案

Fastflect是一个相当不错的库,我使用它提供了更简单的方法来调用和访问成员,以及超级简单的委托生成几乎任何你可能需要的,如果你缓存委托,会显着提高性能。它的记录非常好,这真的很有帮助。这是我在编写自己的一组强类型泛型委托生成方法之前使用的。

以上是关于C#库便于动态反射的主要内容,如果未能解决你的问题,请参考以下文章

go学习-反射

反 射

java 反射代码片段

深入浅出MyBatis:反射和动态代理

7. 反射技术:其实就是动态加载一个指定的类

QTextCodec::makeDecoder函数,plugins需要是动态链接库