【问题标题】:Attribute to add to an Interface for the default concrete class?添加到默认具体类的接口的属性?
【发布时间】:2010-11-19 08:59:01
【问题描述】:

这可能是不可能的,但是尝试一下就够烦了……

为了方便起见,我希望能够在定义为接口的变量上的属性或方法上选择“转到定义”,并让 Visual Studio 转到具体实现而不是接口。是否有一个属性或其他东西可以用来指示 Visual Studio 接口的默认具体类型是什么?

更新

我应该提到这很好的原因是因为我们正在使用依赖注入。所以几乎每个对象都有一个接口。

【问题讨论】:

  • 如果每个对象都有一个接口,作为程序员,你会如何决定默认的具体类是什么?
  • 请记住,我只是在谈论使在 Visual Studio 中导航更容易。如果我创建一个 Person 对象和一个匹配的 IPerson 接口,我想指定 Person 是 IPerson 的默认对象,所以当我单击 IPerson.GetFullName() 上的“转到定义”时,它会转到 Person.GetFullName() .我希望这对你更有意义。
  • 先生。 Saunders,现在不要开始大喊大叫——也许 DXCore(来自 devexpress)可能允许为此编写插件。
  • @Saif Khan...哦,是的,它肯定会:)
  • 先生。桑德斯,你的答案似乎非常强大,其中一些。一个人不一定要生气才能大喊大叫……尽管如此,我的看法可能会发生变化。阅读时我会更加开放......但见鬼,你确实给出了很好的答案。

标签: visual-studio debugging interface dependency-injection attributes


【解决方案1】:

DXCore 肯定会支持创建一个插件来做这样的事情。制作插件确实比我遇到的任何其他方法都容易得多。

如果您有兴趣自己进行此操作,可以通过 http://www.devexpress.com/crx 提供的免费 Coderush Xpress 安装 DXCore

您能否详细说明您希望能够放置什么样的属性。 :)

似乎属性可能无法直接引用类型,因为这需要循环引用。也许是一个给出完全限定的“Namespace.ClassName”的字符串

可以通过http://twitter.com/rorybecker 在 Twitter 上联系我,或者通过 Rory[NothingGoesHere]Becker@[gmail].[com] 发送电子邮件。如果您喜欢更具互动性的对话:)

随着我们的进步,我会修改这个答案:) 我什至可以为你构建这个。 :)

【讨论】:

  • 我安装了 Coderush Xpress,并建议我所有的同事也安装它。这很酷。但我没有看到您如何使用它来创建加载项。我该如何开始?
  • 好吧,您可以使用 File\New Project 创建一个新插件,并从 DXCore 部分选择 Standard plugni。在此之后,您可能想在此处阅读 -> code.google.com/p/dxcorecommunityplugins/wiki/PluginResources,您可以在其中找到一些指向特定教程的链接。我一直在写新的,我通常从那里链接它们:)
  • 好的,在尝试做这个的时候,我发现了一个其他人已经做过的例子。 community.devexpress.com/blogs/markmiller/archive/2008/12/02/… 但他说要使用它,您可以从“跳转到..”菜单中选择。我没有那个菜单。您是否碰巧知道 CodeRush 的免费版本中是否不提供它?
  • 大声笑...某人是 Mark Miller(Coderush 的首席架构师 :))我不认为跳转到菜单在 CRX 中可用,但我必须检查早上。
  • 我也不相信米勒先生在他的帖子中所做的与您所追求的相同。但是,您可以使用“操作”作为您创建的任何代码的初始触发器。这允许您将您创建的任何功能绑定到击键。见rorybecker.blogspot.com/2009/08/…。有关基于操作的插件的快速示例,请参阅rorybecker.blogspot.com/2009/04/…
【解决方案2】:

如果变量被声明为接口,那么实现该接口的任意数量的具体对象都可以分配给您的变量。在设计时,编译器无法知道可以为您的接口变量分配什么具体类型的对象。

我从未听说过接口的默认具体类型 - 如果其他人有,我很想知道如何使用默认值。

【讨论】:

    【解决方案3】:

    我听说 ReSharper 和 Visual Assist X 有这个功能,但我希望有一些免费的东西。 :(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 2018-12-13
      • 2013-09-09
      相关资源
      最近更新 更多