Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在UML中正式记录C#属性?_C#_Attributes_Uml - Fatal编程技术网

如何在UML中正式记录C#属性?

如何在UML中正式记录C#属性?,c#,attributes,uml,C#,Attributes,Uml,什么是在UML类图中记录类的C#属性的正确方法?我还没有决定这是否是我的答案,但我想为了讨论起见,我会把它扔到那里。这看起来可以接受吗 它是属性类型的一个实例,元数据值放入下面的标记值中。我刚刚想出了如何添加自定义立体声类型。该箭头只是一个标记为“应用”的依赖项箭头。我不知道这是否是“标准”,除了它使用了UML中的标准功能: SparxEnterpriseArchitect在逆向工程(例如,单元测试类)中为属性使用标记值。类上的标记值“属性””将属性的名称作为值,例如“[TestClass]”

什么是在UML类图中记录类的C#属性的正确方法?

我还没有决定这是否是我的答案,但我想为了讨论起见,我会把它扔到那里。这看起来可以接受吗

它是属性类型的一个实例,元数据值放入下面的标记值中。我刚刚想出了如何添加自定义立体声类型。该箭头只是一个标记为“应用”的依赖项箭头。

我不知道这是否是“标准”,除了它使用了UML中的标准功能:

SparxEnterpriseArchitect在逆向工程(例如,单元测试类)中为属性使用标记值。类上的标记值“
属性”
”将属性的名称作为值,例如“
[TestClass]
”。类似地,“
Attribute=[TestMethod]
”放置在方法上。例如:

[TestClass]
public class MyTests
{
    [TestMethod]
    public void DoSomeTest()
    {
    }
}
在本例中,
[TestClass]
[TestMethod]
是.NET属性(不是UML属性)。它们是
[TestClassAttribute]
[TestMethodAttribute]
的缩写。这两个类都是从
System.Attribute
类派生的


属性只是向程序集添加元数据。它本身没有运行时行为。

顺便说一句,这是一个依赖关系,在上面的图表上,你知道,我这里有一个个人仇恨者,所以我认为它不会起作用;)我认为您首先看到了这个显而易见的东西,这看起来像一个依赖项,所以即使依赖项注入机制有时也可以使用属性,这实际上意味着一些东西;)我喜欢你的帖子。顺便说一下,UML被设计成至少能够描述弱依赖关系,例如,C#类和类属性之间的依赖关系。@Artur:这实际上是依赖关系注入。我用的是MEF。ExportViewMetadataAttribute扩展了ExportAttribute。@Artur:如果您有问题,请访问,然后在此处添加注释,并在此处添加问题链接。@John Saunders:谢谢,我想这对您会有帮助的too@John桑德斯:谢谢,愚蠢的打字错误。