【问题标题】:Asp.net MVC3 access internal class from razor ViewAsp.net MVC3 从剃刀视图访问内部类
【发布时间】:2012-07-22 18:34:55
【问题描述】:

这不是一个重复的问题。我已经搜索过 SO,但我需要不同的东西。

今天是一种从 Razor View 访问内部类的方法,我知道该程序集必须是可见的,并且是现在。

默认情况下,在“内部”类中声明的属性和方法都不能从视图中访问。我需要一种方法来覆盖它。

谢谢。

【问题讨论】:

  • 你为什么要这样做?您是否正在寻找访问方法 /property ?
  • 无所谓。默认情况下,不能从视图访问在“内部”类中声明的任何属性或方法。我需要一种方法来覆盖它。谢谢。
  • 我知道程序集必须是可见的,现在还没有。你是说InternalsVisibleTo 属性吗? msdn.microsoft.com/en-us/library/…
  • 我也有同样的问题。我有一个常量类,其中存储了所有全局可访问的常量,并且需要在 Razor 视图中引用它,但我不想让常量类对其他程序集可见。有人解决了吗?

标签: asp.net-mvc-3 class reference internal


【解决方案1】:

在大多数情况下,您可以将类从内部更改为公共。如果不需要,您可以使用InternalsVisibleTo

对于使用资源 (.resx) 文件自动生成的 .Designer.cs 文件,您可以通过在“设计师”视图:

如果一切都失败了,你应该能够使用反射来获得你需要的东西。有关详细信息,请参阅最佳答案here

祝你好运!

【讨论】:

  • 不幸的是,InternalsVisibleTo 对 Razor 引擎没有帮助,因为它生成了公开模型的公共类运行时。这意味着无论是否使用 InternalsVisible,可访问性级别都会有所不同并在 Razor 中生成编译错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多