枚举在跨多个 visual studio 引用时无法工作解决方案

Enum cannot work when reference it cross multi visual studio solution

我有A、B、C三种方案。 我在 A 中有一个这样的枚举:

using System.Runtime.Serialization;
namespace A.Entities
{
    [DataContract]
    public enum Status
    {
        [DataMember]
        Active = 0,

        [DataMember]
        Inactive = 1,
    }
}

我在解决方案 B 中这样引用它:

using A.Entities;
namespace B.Entities
{
    public class User
    {
        [DataMember]
        public string UserName { get; set; }

        [DataMember]
        public Status Status { get; set; }
    }
}

在解决方案 C 中,我这样使用它们:

using B.Entities;
using Status = A.Entities.Status;
namespace C.TestDatas
{
    public class UserTestData
    {
        public static User CreateUser()
        {
            return new User
                   {
                       Status = Status.Active,
                   }
        };
    }
}

当我调用 User 方法时,它抛出异常:

Method not found: 'Void B.Entities.User.set_Status(A.Entities.Status)'.

为什么?希望有人能帮帮我,谢谢!

我无法重现问题。您的代码在我的计算机上运行良好(在 .NET Framework 4.5 上)

您能否确保您的项目配置正确:

  1. AB 解决方案都参考了 System.Runtime.Serialization
  2. C 引用了 AB。确保你没有 link 来自 /Bin 文件夹的 dll,但你有项目引用
  3. 点击 Visual Studio 中的清理和重建按钮。