2012-02-15 23 views
5

yansıyan edilemez, benWeb hizmetleri: bir hizmetin bir örneğini oluşturmaya çalışırken yöntem istisna

istisna "Yöntem yansıyan edilemez" alıyorum. İç istisnalar aşağı derin Kazı ortaya koymaktadır:

"Türleri 'WebServiceClient.com.compamy.string1' ve 'WebServiceClient.com.company.string' hem XML tipi adını, 'dizesini kullanabilirsiniz, gelen namespace 'http://www.w3.org/2001/XMLSchema'. türü için benzersiz bir XML adı ve/veya ad alanı belirtmek için XML öznitelikleri kullanın. "

Bu lanet şey benden ne istiyor? VS2010 tarafından üretilen otomatik kod ... neden bununla uğraşmak zorundayım? İşte

iki gruba ayrılır:

[GeneratedCode("System.Xml", "4.0.30319.233")] 
[Serializable] 
[DebuggerStepThrough] 
[DesignerCategory("code")] 
[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")] 
[XmlRoot("FileName", Namespace = "http://company.com/api3/Content/Download/", IsNullable = true)] 
public partial class string1 : SoapHeader 

ve

[GeneratedCode("System.Xml", "4.0.30319.233")] 
[Serializable] 
[DebuggerStepThrougt] 
[DesignerCategory("code")] 
[XmlTypeAttribute(Namespace = "http://www.w3.org/2001/XMLSchema")] 
[XmlRootAttribute("SessionKey", Namespace = "ns", IsNullable = true)] 
public partial class @string : SoapHeader 
+0

Neden 'StringHeader: SoapHeader' olarak adlandırılmıyor? – abatishchev

cevap

7

ben bir çözüm buldum ama çalışmıyor neden olduğunu açıklayamam. Tüm tür eşleme niteliklerini tüm yöntemlerden kaldırdım ve daha fazla hata alamıyorum.

Hatları kaldırıldı: Biri açıklayabilir Eğer

[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")] 

ben gerçekten çok seviniriz!

+0

Bunun neden olduğu konusunda herhangi bir çözüm buldunuz mu, JSON ile aynı problemi yaşıyorum. – Marcus

+1

Bir C# istemcisinden java'da yazılan bir web servisi çağırdığımda aynı sorunla karşılaştım, aynı zamanda tip eşleme özelliklerini kaldırdım ve işe yaradı! nedenini gerçekten anlayamıyorum! –

+1

Neden sadece hatayı yeniden düzenleyerek işe yaramadığını ve neden isminizin farklı olduğunun nedenini görebilirsiniz. Nesneyi bekleyen ad alanı, bir dize türünü bekliyor veya en azından seri hale getirildiğinde, düğüm "dize" olacaktır. Hem adın, hem de ad alanınızla benzer bir hatayı aldım. Ben xml ile "w3", senin gibi, sonra bir sabun kütüphanesi ile göndermeyi denedim ve nihayet wsdl olduğu api'nin url'sine başvurduğunda işe yaradı ... eğer şemanını almak için bir wsdl kullandıysan ... belki denemek – user1040975

İlgili konular