c# - 是否可以反射(reflect)托管程序集?

标签 c#

例如,IIS 托管 ASP 程序集,而 SQL Server 托管 SqlClr 程序集。如果我要编写托管服务器应用程序,托管程序集是否可以反射(reflect)托管应用程序?还是应用域可以防止这种情况发生?

郑重声明,我并不是要反射(reflection)其他人的集会,我更感兴趣的是防止其他人反射(reflection)我的集会。

最佳答案

如果托管程序集具有反射权限(参见 http://msdn.microsoft.com/en-us/library/system.security.permissions.reflectionpermission.aspx ),它可以反射它获得的任何类型。因此,如果您担心有人“窥探”您的代码,请确保托管程序集在没有该许可的情况下在沙盒中运行。

注意:Microsoft 不断更改适用于所有其他服务包的确切限制。可以假设声明为“公共(public)”的所有内容都将允许代码在反射中使用它,而不管权限如何:http://msdn.microsoft.com/en-us/library/system.security.permissions.reflectionpermissionflag.aspx但由于托管代码必须通过这些公共(public) API 与您的托管应用程序交互,因此将它们隐藏起来不被反射不会以任何方式提供任何真正的好处。

关于c# - 是否可以反射(reflect)托管程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15455773/

相关文章:

c# - 按时间或运行总和缓冲以进行 react 性扩展

c# - WCF 序列化类型不匹配

c# - 使用模式 "MM/dd/yyyy hh:mm:ss"将字符串转换为 DateTime

c# - 传递多维 Npgsql 参数?

c# - 为什么 IEnumerable<T>.Max 不将 T 约束为 IComparable?

c# - 如何从 Photoshop 文件中提取图层? C#

c# - 查询和映射复杂对象

c# - 使用 ServiceStack.Text 将动态对象列表序列化为 CSV

c# - 如何使用 Timer.tick 事件处理程序发送 2 个整数参数

c# - 我如何确定或判断一组类是否为 "spaghetti code"?