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)
Не могли бы вы убедиться, что ваш проект настроен правильно:
- И то и другое
A
а такжеB
решения имеют ссылку наSystem.Runtime.Serialization
C
имеет ссылку наA
а такжеB
, Убедитесь, что вы не связываете DLL из/Bin
папка, но у вас есть ссылка на проект- Нажмите "Очистить" и "Восстановить" кнопки в Visual Studio.