Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
628
Tıklama
0
Öne Çıkarma
web service de complex type
6
14 yıl
Çavuş
Konu Sahibi

Merhaba , ben complex type şeklinde request hazırlamak istiyorum, ancak şöyle bir sıkıntım var tek bir out vermek istiyorum ve altında 2 farklı type olacak. Yapıyı kurarken collaction kullandım ve farlı tipleri 2 farklı listeden getiriyorum. Aşağıdaki gibi,

[WebMethod]
public SetVehicleInfo( vehicleListingInfoCollection vehicleListingInfo, sellerInfoCollection sellerInfo)


Sıkıntım, birden fazla satır kayıt döndüğü için, listeler peşi sıra tekrar ediyor oysaki ben listelerin en sonundan yeni araç için tekrar etmesini istiyorum

Aşağıdai şekilde olması gerekiyor;

<vehicleInfo>
<vehicleListingInfo>
<saleId>int</saleId>
<runNumber>int</runNumber>
</vehicleListingInfo>

<sellerInfo>
<sellerNm>string</sellerNm>
<sellerId>int</sellerId>
</sellerInfo>

<vehicleListingInfo>
<saleId>int</saleId>
<runNumber>int</runNumber>
</vehicleListingInfo>

<sellerInfo>
<sellerNm>string</sellerNm>
<sellerId>int</sellerId>
</sellerInfo>

</vehicleInfo>

Fakat gelen şema şu şekilde;

<vehicleInfo>
<vehicleListingInfo>
<saleId>int</saleId>
<runNumber>int</runNumber>
</vehicleListingInfo>

<vehicleListingInfo>
<saleId>int</saleId>
<runNumber>int</runNumber>
</vehicleListingInfo>

<sellerInfo>
<sellerNm>string</sellerNm>
<sellerId>int</sellerId>
</sellerInfo>

<sellerInfo>
<sellerNm>string</sellerNm>
<sellerId>int</sellerId>
</sellerInfo>

</vehicleInfo>

bu sıkıntıyı aşamada yardım ederseniz sevirim.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



6
14 yıl
Çavuş
Konu Sahibi

Arkadaslar bu yapıyı nasılo kuracağım konusunda acil yardımınız lazım.

3 farklı class içinde tuttuğum bilgiyi web servise de invoke edildiğinde aşağıdaki gibi complex type da dizilmesini istiyorum.

c# bilgim az, kalıtımdan cok anlamıyorum yani. Çok gülünc gelebilir ancak şöyle bir yapı var mı?
Ben ClassAll adlı class dan class1 , class2 ve class3 çağırabileyim. Class içine class yazabiliiyorum ama o class isimlerini değişken olarak nasıl tanımlamam gerekiyor. Bunun için interface mi , abstrac mı ne kullanmam gerekiyor bilmiyorum.

Neden böyle bişey istiyorum çünkü web service out parametre olarak class referansını yazdıgım vakit, xml dokumanda o classa ait parametreler listeleniyor. Complex Type olmasını istediğim için , ben ClassAll referansını out olarak verince , web service aşağıdaki gibi bir şema cıkarması lazım,

+ClassAll
++Class1
--- prop1
--- prop2
++Class2
--- prop3
--- prop4
--- prop5
++Class3
....

Ben bu yapıyı sağlamak için Web Service metodunda sadece ClassAll out diyebilmek istiyorum.

[WebMethod]
public method ( ClassAll tipinde ClassALL)


Bu mesaja 1 cevap geldi.
F
14 yıl
Yarbay

Hangi yazılımı kullanıyorsun yapmak istedigin nedir ?


Bu mesaja 1 cevap geldi.
E
14 yıl
Teğmen

Sorunuzu, biraz anladım galiba :)

Başka bir class yaratın, atıyorum myclass

bu class'a listelerinizi parametre olarak verin,

bu class in icinde dort degisken olsun :

int saleId, int runNumber, int sellerId;
String sellerNm;

Kullandiğiniz dilde, Collection'in son elemanini almanin yolunu bilmiyorum, ama varsayiyorum ve su sekilde bir constructor olusturun:

myclass (vehicleListingInfoCollection vehicleListingInfo, sellerInfoCollection sellerInfo)
{
// list.get(list.size()-1) tamamen listenin son elemanını
// döndürdüğünün varsayımıdır.. Buraya çalişan kodu ekleyin..
vehicleItem = vehicleListingInfo.get(vehicleListingInfo.size()-1);
sellerItem = sellerInfo.get(sellerInfo.size()-1);

saleId = vehicleItem.saleId;
runNumber= vehicleItem.runNumber;

sellerId = sellerInfo.sellerId;
sellerNm = sellerInfo.sellerNm;
}

Sonra, belki;

[WebMethod]
public method ( myclass tipinde MYCLASS)

şeklinde web servisinizi kullanabilme ihtimaliniz olur :

Önemli not : tamamen varsayımlar üzerine yazılmıştır :)



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.