【问题标题】:Is there a way to make Anonymous classes with intellisense or something approaching?有没有办法用智能感知或其他方法制作匿名类?
【发布时间】:2012-12-05 14:41:58
【问题描述】:

在我的项目中,我经常使用视图模型(仅用于将数据传输到视图的简单类),例如 ProductAdditionnalInformationForCustomFees 类,它们仅用于呈现数据并在项目中使用过几次。

但是,实际上我有很多这样的,我认为这不是处理控制器和视图之间数据传输的最佳方式。

我可以使用匿名类,但我会失去智能感知的属性,这些属性大大缩短了开发时间和寻找错误。

有没有办法用智能感知来制作类似匿名类的东西?

【问题讨论】:

  • 为什么它不是处理控制器和视图之间数据传输的最佳方式?您不需要每个视图的视图模型,有时您可以只传递模型,如果这就是您所需要的。
  • 是的,但大多数时候我需要这些类来转移到我需要的视图。就像客户一样,我需要客户实体、地址实体等......
  • 匿名类有智能感知。它们还专门设计用于在单个方法的上下文中使用,而不是传递给其他方法。虽然这样做是可能,但它不能有效地完成,并且一个副作用通常是失去智能感知(以及其他问题)。创建命名类比处理这些问题要容易得多,尤其是在维护方面。
  • 好的,所以没有优雅的方法来制作我想要的东西?
  • 不..因为你想要的..并不优雅。

标签: c# asp.net-mvc anonymous-class


【解决方案1】:

匿名类标记为Internal。这使得您的视图和控制器之间难以共享。有一些变通方法,但坚持使用强类型类。

一种可能且有趣的解决方法,但您不会获得智能感知: Dynamic Anonymous type in Razor causes RuntimeBinderException

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多