【问题标题】:Creating C# events with Visual Studio Modeling Project使用 Visual Studio 建模项目创建 C# 事件
【发布时间】:2012-02-15 15:37:05
【问题描述】:

我开始在 VS 中使用 UML 建模。我尝试使用几个类创建图表,连接它们并从模型生成一些代码 - 安装功能包后,一切似乎都正常。

但是,我缺少的是声明事件的能力——这在 .Net 中起着相当重要的作用(并且通常是设计的关键)。

如何在 Visual Studio 的 UML 类图中声明事件?

编辑:

把事情弄清楚。一段时间以来,我对 Visual Studio 中 C# 项目中与类图功能相关的任何内容感兴趣。

此问题与Modeling Project 有关,这是 Visual Studio 2010 Ultimate 中的新功能。

【问题讨论】:

  • 在我看来,在 UML 中处理事件是不可能的。我试过了,但从来没有找到怎么做,这么好的问题......

标签: c# .net visual-studio-2010 uml code-generation


【解决方案1】:

【讨论】:

  • 遗憾的是,这无济于事。类图不是建模项目。类图是所有 C# 项目中可用的简化类设计工具。 Modeling Project 是 Visual Studio 2010 Ultimate 中的一项新功能(因此缺乏在线资料),是一个成熟的 UML 架构设计器,具有类、流程、序列、层和其他图表。
【解决方案2】:

您应该尝试包含 Observer\Event Pattern。这里讨论得很好。 http://www.cumps.be/nl/blog/read/design-patterns-observer-event-pattern

【讨论】:

  • 这对我有什么帮助?那里需要事件(事件观察者模式的实现)。我需要找到一种在 UML 中表示事件的方法,而不是避免使用事件。
  • 我认为我们没有直接的方式在 UML 图中表示事件。
【解决方案3】:

UML 与实现语言无关。在 UML 中定义特定语言习语的正确方法是使用stereotype。构造型是 UML 元类的一种特化。定义一个 profile,它将 Class 扩展为一个 EventHandler 和 Event stereotype,它扩展了 Message。然后将这些刻板印象适当地应用于模型中的类。然后,您可以将特定语言的惯用语实现细节放在构造型中。

【讨论】:

  • 感谢您的回答。在研究文档 20 多分钟后,我终于发现功能包提供了带有“事件”构造型的 C# 配置文件。然而,代码生成模板似乎完全忽略了这种刻板印象的属性。我会继续研究这个,所以我不会把它标记为答案。但是,我会给你赏金(否则它会过期)。
  • @Matěj Zábský:我注意到和你一样的行为。我提交了一个错误here。如果您有权访问该网站,请投票以加快关注。
  • @Matěj:更新:MS 已对错误报告做出回应,承诺在下一个版本中解决该问题。他们还提供了一种解决方法(我还没有机会测试)。有关详细信息,请参阅 cmets 线程 on the issue page
  • @Kmote 我可以确认此问题已在 VS 2012 RC 中修复。感谢您推动微软解决此问题:)
【解决方案4】:

以上都没有对我有用。以下是启用 C# 语言概念的方法:

  • 确保您已经有一个建模项目或创建一个
  • 在 Visual Studio 中选择 Architecture -> Windows -> UML model explorer
  • 选择您的建模项目并打开属性面板
  • 在“配置文件”下点击“C# 配置文件”复选框。

向类图中添加事件:

  • 在类上创建新属性。
  • 在属性面板中检查构造型中的“C#事件”

遗憾的是,属性上没有视觉指示将其标记为事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多