C# içinde bir WCF ve aynı anda tüketecek bir istemci yapıyorum. Nedense bir int dönüşü için bir yöntem almakta sorun yaşıyorum. Bunu uygulayanWCF bir int dönmeyecek
İşte[ServiceContract]
public interface IMData
{
[OperationContract]
int ReturnAnInt();
[OperationContract]
String HelloWorld();
}
geçerli:: İşte benim sözleşmedir
public class MData : IMData
{
public String HelloWorld()
{
return "Hello World";
}
public int ReturnAnInt()
{
return 5;
}
}
Visual Studio kullanıyorum ve müşteri için, bir Web başvurusu olarak bu WCF ithal. Şimdi bir nedenle MData örneğini bildirdiğimde ve HelloWorld'ü aramaya çalıştığımda, sorun yok, ancak ReturnAnInt'i çağırırken derleme hatası alıyorum.
MData m = new MData();
String helloWorld = m.HelloWorld();
int result = m.ReturnAnInt();
Ben ReturnAnInt ile almak hatadır: "Hayır aşırı yük yöntemi 'ReturnAnInt' için geçen 0 argümanlar" Öyleyse Ben fareyi üzerine bekliyor Görsel Ne Studio görüyorum, o yöntem bakmak gerektiğini söylüyor etmek gibi:
void MData.ReturnAnInt(out int ReturnAnIntResult, out bool ReturnAnIntResultSpecified)
şimdi saatlerce bu üzerinde kafamı duvara vurarak edilmiş ve Google'da bir şey bulabilirsiniz ve benim arkadaşları yanı şaşkın vardır. Neden bu tanımda olmayan iki parametre eklediniz ve dönüş türünü değiştirdiniz? Herhangi bir yardım büyük takdir edilecektir. Yardımcı olabilecek herhangi bir bilgiyi çıkarsam özür dilerim.
WCF gerçekten 'Başkanlığı'nca parametreleri destekliyor mu? – abatishchev
Evet, ama soru tam olarak bu değil. Soruda anlatılan problem, WCF C# kodunun 'out' parametrelerini veya isteğe bağlı 'ın' belirtmediğidir, ancak Web References kod üretecinin bu şekilde oluşturduğu yoldur. Bu çalışıyor. Ancak, bir intrc hizmetini "int ReturnAnInt (out int otherInt);" gibi çalıştırabilir ve bu hem Hizmet Başvurusu hem de Web Başvurusu olarak erişilebilir. Oluşturulan WSDL, birden çok öğeye sahip bir yanıt nesnesidir, bu nedenle diğer istemci dillerinde de kullanılabilir bir şey üretmelidir. –
Yanıtlarınız için hepinize teşekkür ederiz, çok yardımcı oldular! Servis Referansı olarak ithal ettim ve problemim çözüldü :) –