Enum не может работать, когда он ссылается на решение для нескольких визуальных студий

У меня есть три решения 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, он выдает исключение:

Метод не найден: 'Void B.Entities.User.set_Status(A.Entities.Status)'.

Зачем? Я надеюсь, что кто-то может мне помочь, спасибо!

1 ответ

Решение

Я не могу воспроизвести проблему. Ваш код отлично работает на моем компьютере (на.NET Framework 4.5)

Не могли бы вы убедиться, что ваш проект настроен правильно:

  1. И то и другое A а также B решения имеют ссылку на System.Runtime.Serialization
  2. C имеет ссылку на A а также B, Убедитесь, что вы не связываете DLL из /Bin папка, но у вас есть ссылка на проект
  3. Нажмите "Очистить" и "Восстановить" кнопки в Visual Studio.
Другие вопросы по тегам