Niejednoznaczne odniesienie w WCF i aplikacji klienckiej

Udało mi się odtworzyć jeden z błędów w projekcie testowym o podobnej strukturze do mojego kodu produkcyjnego. Składa się z trzech prostych projektów:

Wspólne (biblioteka klas):

namespace Common
{
    public enum PrimaryColor
    {
        Red,
        Green,
        Blue
    };
}

Biblioteka (biblioteka usług WCF), która ma odniesienie do Common:

using Common;

namespace Library
{
    [ServiceContract]
    public interface ILibrary
    {
        [OperationContract]
        PrimaryColor GetColor();
    }

    public class Library : ILibrary
    {
        public PrimaryColor GetColor()
        {
            return PrimaryColor.Red;
        }
    }
}

ClientApp (aplikacja konsolowa), która ma odwołanie do Common i odwołanie do usługi do Library o nazwie „LibraryServiceReference”:

using Common;
using ClientApp.LibraryServiceReference;

namespace ClientApp
{
    class Program
    {
        static void Main(string[] args)
        {
            LibraryClient client = new LibraryClient("WSHttpBinding_ILibrary");
            PrimaryColor color = client.GetColor();
        }
    }
}

Pliki app.config w ClientApp i Library są generowane automatycznie i nie zmodyfikowałem ich, a nie zmieniłem domyślnej konfiguracji LibraryServiceReference w ClientApp.

Kiedy kompiluję to rozwiązanie, otrzymuję następujące błędy w projekcie ClientApp:

Błąd 1

'PrimaryColor' is an ambiguous reference between 'Common.PrimaryColor' and 'ClientApp.LibraryServiceReference.PrimaryColor'

Błąd 2

Cannot implicitly convert type 'ClientApp.LibraryServiceReference.PrimaryColor' to 'Common.PrimaryColor'. An explicit conversion exists (are you missing a cast?)

pomóż mi to naprawić.

questionAnswers(5)

yourAnswerToTheQuestion