单元测试:“状态”类型存在于两个项目中

时间:2016-04-03 14:54:16

标签: c# .net types

我正在为我的程序编写单元测试,并且在两个不同的项目中遇到了我的类型错误。我试图通过在代码中添加项目名称来克服它:var status = CommunicationsServer.Status()然后它说那里没有Status()类型。

请帮忙

enter image description here

以下是CommunicationsServer.Status类的前几行:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.33440")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://www.mini.pw.edu.pl/ucc/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.mini.pw.edu.pl/ucc/", IsNullable=false)]
public partial class Status {

    private ulong idField;

    private StatusThread[] threadsField;

    /// <remarks/>
    public ulong Id {
        get {
            return this.idField;
        }
        set {
            this.idField = value;
        }
    }
//further code 
}

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您有两种不同的类型,则必须用命名空间分隔它们。如果您有两个项目ProjectOneProjectTwo,且类型MyType相同,则根本无法区分该类型。我不确定它是如何工作的,但是我能够实现它,并且无法让Visual Studio在第三个项目ProjectThree中编译我对类型的引用。正如你在问题中所做的那样。

出于某种原因,自动生成的xml到C#文件并不总是在它生成的类周围放置命名空间。只需提供与项目相关的唯一命名空间,您就应该好好去。

在CommunicationsServer生成的文件中:

namespace CommunicationsServer.Xsd 
{
    public partial class Status() 
    {

    }
}

在TaskManager生成的文件中:

namespace TaskManager.Xsd 
{
    public partial class Status() 
    {

    }
}

然后在ProjectThree中,您可以使用using语句using CommunicationsServer.Xsd或完全限定类型:var status = new CommunciationsServer.Xsd.Status();