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ć.