Object Dizi Döndüren WebServisi c# ta NULL dönüyor.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Object Dizi Döndüren WebServisi c# ta NULL dönüyor.

Mesaj gönderen vkamadan »

Merhaba ,
Object Dizi döndüren br web servisini Delphi uygulamasıyla test ediyorum sorunyok, fakat c# uygulamasında test edilirken servis NULL değer döndürüyor, acaba Delphi tarafında servisi yazarken dikkat edilmesi gereken ekstra durumlar mı var.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Delphi tarafında değilde c# tarafında bir cast sorunu yaşıyor olabilirmisiniz?
Malüm object diziside bir object dir..

örn;

Kod: Tümünü seç

private object[] GetObjectArray()
{
    object[] obj = new object[3];
    obj[0] = new Button();
    obj[1] = new TextBox();
    obj[2] = new Label();

    return obj;
}

private void button_Click(object sender, EventArgs e)
{
    object obj = GetObjectArray();

    object o1 = ((object[])obj)[0];
    object o2 = ((object[])obj)[1];
    object o3 = ((object[])obj)[2];

    Button btn = (Button)a1;
    TextBox txt = (TextBox)a2;
    Label lbl = (Label)a3;
}
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

@lazio küçük bir yanlış anlaşılma oldu ojbe derken şöyle bir objeden bahsetmiştim,
WebServisimde tanımladığım Remotable bir Class var ,
örn;

Kod: Tümünü seç

TDiziElemani = Class(TRemotable)
    private
     FAlanString : String;
     FalanInteger: Integer;
    published
    property AlanString :String read FAlanString write FAlanString;
    property AlanInteger :Integer read FalanInteger write FalanInteger;
   end;
Ben bir metodla bu Class ın dizisini döndürüyorum ;

Kod: Tümünü seç

TDizi = array of TDiziElemani;
Örnek Metodda şöyle ,

Kod: Tümünü seç

function OjbDiziTest(Sayi:Integer):TDizi;stdcall;
Bu metod parametre geçtiğim kadar uzunluğunda rast gele verili TDizi türünde değer döndürüyor,
ben bunu delphi de çağırıp kullanıyorum sorunsuzca ancak ,
c# da şu şekilde kullandığımda ,

Kod: Tümünü seç

 TDiziElemani[] dizi = new IPolisoftservice().OjbDiziTest(3);
            textBox2.Text = dizi.Length.ToString();
            for (int i = 0; i < dizi.Length; i++)
            { textBox1.Text = dizi[i].AlanString; }

döngüde dizi.length kısmında hata veriyor ve diyorki dizi=null dur . oysaki null değil.
Anlayamadım gitti, dizi değilde tek döndüren metodu c# ta sorunsuz kullanabiliyorum.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

 TDiziElemani[] dizi = new IPolisoftservice().OjbDiziTest(3);
            textBox2.Text = dizi.Length.ToString();
            for (int i = 0; i < dizi.Length; i++)
            { textBox1.Text = dizi[i].AlanString; }

döngüde dizi.length kısmında hata veriyor ve diyorki dizi=null dur . oysaki null değil.
Anlayamadım gitti, dizi değilde tek döndüren metodu c# ta sorunsuz kullanabiliyorum.
döngüden önceki satırdaki Length i alabiliyormusun peki?
Ayrıca TDiziElemani array ını test etmek için önceki örnekteki kodu buna uygulayabilirsin..

new IPolisoftservice().OjbDiziTest(3) dönen sonucu bir object [] a atayıp length ini almaya çalışabilirsin, eğer alabiliyorsan her bir elemanı TDiziElemani class ına çevirerek sonu halledebilirsin diye düşünüyorum..
yok eğer new IPolisoftservice().OjbDiziTest(3) object array a da null dönüyorsa bu fonks.da bir sorun olabilir.
kolay gelsin..
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

döngüden önceki satırdaki Length i alabiliyormusun peki?
O satırı son anda eklemiştim o yüzden gözümden kaçmış evet o satırdada hat alıyorum, şimdi object olarak aldığımdada dizi=null fakat fonksiyonu delphiden çağırabiliyorum ve null gelmiyor istediğim sonuçlar geliyor.
Şöyle bir şey var, C# ta yazılmış bir Web Servisindeki buna benzer Object dizisi dönen metod sonuçlarını delphiden boş görüyorduk sonra adamlar c# taki koda minik bir eklenti yapmışlar görebildik, acaba delphi dede c# obje dizileri görebilsin die özel bir tanımlama mı yapmak gerekir? Çünkü Delphi den çağırdığımda hiç bir sorun yok.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla