我建议不要使用反射。我真的很想知道,是不是因为Reflection是昂贵的?如果不是,避免使用它的原因是什么?System.Reflection如何工作访问类成员数据/信息?
我目前和未来的项目可能需要访问任何给定的类成员信息。由于我有时需要列出字段&属性 - 值或声明名称。
所以我想知道什么是:
反射波如何工作的?它如何获得信息? (一个简短的解释就可以)
为什么不推荐在应用程序中使用反射?如果您确实需要获得所需的信息是字段或属性值OR名称,您是否可以通过使用System.Reflection来执行而不是?
一些背景。
我当前项目中的用法(例如)是列出一个特定的sql server表 - 列名或SQL表名。
我可以想到其他方式将它作为List<strings>
返回。
如果我真的知道为什么或如何“坏”是,使用reflection
,
..我会再做出决定,如果我真的想避免它,因为我可能会找到一个替代方法(在这个特定的情况下)。
无论是通过访问数据库(不是首选),我需要(说)表名列表或我可以做一次(访问数据),然后将其存储在文本文件或XML,如果我真的必须避免反射。
我知道一些更优雅的。虽然这不是问题。 (再次,这只是因为可能有很多其他使用情况的例子,你可能知道)。
更新
,这一问题被关闭,请帮助重新打开它,并低于
票“重启”谢谢 。
如何使用反射来获取SQL列的列表?为什么不从'INFORMATION_SCHEMA.COLUMNS'选择*? – Blorgbeard
@Blorgbeard。请 看到我的帖子的末尾读它,直到最后,你可以更好地理解为我所做的quetion本身BOLD – LoneXcoder
@Blorgbeard你怎么会认为我已经完成它,让所有的表列的身份是作为第一位的一类?还是你提供每次我需要它作为性能微调的数据库? – LoneXcoder