Bir web servisinden karmaşık bir tür döndürmem gerekiyor ve IMyComplexType arabirimini uygulayan MyComplexType sınıfını oluşturmuştum.Arabirimleri .net webservislerinden döndürmek mümkün mü yoksa yalnızca beton sınıflarını geri alabilir mi?
[WebMethod]
public IMyComplexType GetMyComplexType()
{
IMyComplexType myCt = new MyComplexType();
...
return myCt;
}
Her şey tamam derler ama webservice çalıştırdığınızda aşağıdaki gibi bir istisna atar:
System.NotSupportedException: Cannot serialize interface MyWebService.IMyComplexType.
mi Şimdi benim webservice ben şöyle IMyComplexType uygulayan bir nesne döndürmesi gerekir bir yöntem var Bu tasarım tarafından veya bir şey eksik. Buna izin vermek için sınıfımı veya arayüzümü bir şekilde dekore edebilir miyim? Tüm arayüzleri elimden çıkarmak ve bunu sadece .net web servisleri ile yapabilmek için somut ve belki de soyut temel sınıflarla çalışmak zorunda mıyım?
Düzenleme:
bu ben getirilmeye çalışıyorum arayüz:
public interface ICustomer
{
long Id {get; set;}
string Name {get; set;}
string EmailAddress {get; set;}
}
Bu sırayla ISerializable arabirimini tüm sınıflarımda uygulamamı gerektiriyordu - buna rağmen bunu yapmak zorunda kalmadan serileştirmeyi umuyordum. Sadece halka mallara ihtiyacım var. Arayüzleri ortadan kaldırmak ve sadece beton sınıflarını kullanmak iyi çalışıyor ama bu en iyi uygulama mı? – Fadeproof