Mehrdeutiger Verweis in WCF und Clientanwendung
Es ist mir gelungen, einen der Fehler in einem Testprojekt mit einer ähnlichen Struktur wie in meinem Produktionscode zu reproduzieren. Es besteht aus drei einfachen Projekten:
Common (Klassenbibliothek):
namespace Common
{
public enum PrimaryColor
{
Red,
Green,
Blue
};
}
Bibliothek (WCF-Servicebibliothek) mit einem Verweis auf Common:
using Common;
namespace Library
{
[ServiceContract]
public interface ILibrary
{
[OperationContract]
PrimaryColor GetColor();
}
public class Library : ILibrary
{
public PrimaryColor GetColor()
{
return PrimaryColor.Red;
}
}
}
ClientApp (Konsolenanwendung) mit einem Verweis auf Common und einem Dienstverweis auf Library mit dem Namen "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();
}
}
}
Die app.config-Dateien in ClientApp und Library werden automatisch generiert und ich habe sie nicht geändert und die Standardkonfiguration für die LibraryServiceReference in ClientApp nicht geändert.
Beim Kompilieren dieser Lösung werden im ClientApp-Projekt die folgenden Fehler angezeigt:
Fehler 1
'PrimaryColor' is an ambiguous reference between 'Common.PrimaryColor' and 'ClientApp.LibraryServiceReference.PrimaryColor'
Fehler 2
Cannot implicitly convert type 'ClientApp.LibraryServiceReference.PrimaryColor' to 'Common.PrimaryColor'. An explicit conversion exists (are you missing a cast?)
Bitte helfen Sie mir, das zu beheben.