Arkadaşlar uygulamam için bir tane wcf servis yazdım. Bu arada uygulama windows 8. Ancak bu yazdığım servis metodunun client tarafında host ettiğim zaman hata alıyorum. Hata, geriye null değer döndüğü için oluşuyor. Metod :

public AnketorDTO AnketorBul(string tc, string pass)
    {
        _entity = new AnketDBEntities();
        var result = (from i in _entity.Anketors
                          where i.TC == tc
                          where i.Sifre == pass
                          select i).ToList();
        if (!result.Any())
     -->>>   return new AnketorDTO();

        Anketor anketor = result.First();
        return Converter.ConvertAnketorToAnketorDTO(anketor);
    }

Sorum , bu geriye dönüş değerini ne yapmalıy ki kullanıcı adı şifre bir biri ile uyuşmadığında null değer üretmesin? (Ok işaretli kısım.)

soruldu: 04 Mar '13, 15:23

emax_64's gravatar image

emax_64
64590102101
cevap kabul oranı: 20%

Sonuçta boş olduğunda dönen değeri yine kontrol edeceksiniz. Nasıl yani diyelim ki anketör bulunamazsa ne döndürsün istiyorsunuz, istediğiniz bu veri tipini yine kontrol etmelisiniz. Yani demek istedigim null döndürsün siz bu metodun sonucunu kullandıgınız metod içerisinde Null değer mi diye kontrol edin. Null olsa da olmasa da zaten kontrol etmeniz gerekiyor.

(04 Mar '13, 15:31) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

ewet doğru diyorsunuz ancak client tarafında null geliyorsa şöyle olsun null gelmiyorsa böyle olsun deme şansınız yok. O nedenle sordum zaten. Geriye dikkat ettiyseniz bir class type dönüyor. işte bu noktada sistem hata veriyor. geriye int dönse sıkıntı yok ama benim istediğim bu şekilde.

(04 Mar '13, 15:33) emax_64 emax_64's gravatar image

Kusura bakmayın, Evet dediğiniz gibi null dönünce connection kapanıyor.

(04 Mar '13, 15:44) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

üstad bul bi çözüm yolu ya :)

(04 Mar '13, 15:48) emax_64 emax_64's gravatar image

Peki, oluşan exception ı yakalayarak bu sorunu çözemez misiniz? BURAYA ve BURAYA bir bakın...

(04 Mar '13, 15:52) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

bunlar sorunu çözmedi. Başka öneriler bekliyorum arkadaşlar.

(04 Mar '13, 16:24) emax_64 emax_64's gravatar image

eğer döndürülecek değer bir int değeri ise, ben bu tarz durumlarda genelde "-1" değeri dönrürürüm.

(05 Mar '13, 07:28) dreampowder dreampowder's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster

Neden böyle bir şeye ihtiyacınız olduğunu anlayamadım. Fakat bir tane static AnketorDTO nesnesi tanımlayarak bu sorunu çöebilirsiniz. Örnek:

public static AnketorDTO anktetorDto;

anketorDto=new AnketorDTO(); anketorDto.Name="DefaultAnketor";

yukarıda ok ile belirttiğiniz yerde bu static AnketorDTO nesnesini return edersiniz. Tabi çağırdığınız yerde anketorDto.Name property sinin "DefaultAnketor" olup olmadığını kontrol ederek işe devam etmeniz lazım.

permanent link

cevaplandı: 05 Mar '13, 00:57

huseying's gravatar image

huseying
301128
cevap kabul oranı: 30%

aynen bu şekilde yapılabilir. ancak daha dinamik hale sokabilir mi diye düşünmüştüm. fakat bulamadım o nedenle artık bu şekilde yaptım bende.

(05 Mar '13, 09:31) emax_64 emax_64's gravatar image

Daha dinamik bir hale döndürmek için null kontrolünü client tarafında yapmak lazım. Diğer bir seçenek te exception handling. wcf exceptionları taşıyabiliyor.

(05 Mar '13, 09:36) huseying huseying's gravatar image

işte sıkıntı null değerini client tarafında yapınca hata fırlatıyor sistem. yani client tarafında if(gelen_nesne!=null) değilse gibi bir şey kullanılamıyor. Zaten garibime gidende bu oldu. aslında tam olarak bunu sormak istedim ben. WCF de Client tarafına null giden değerleri nasıl yönetebiliriz?

(05 Mar '13, 13:19) emax_64 emax_64's gravatar image

if(gelen_nesne!=null) değil de,

if(gelen_nesne==null) { //nesne null ise yapılacaklar

}

şeklinde kontrolü gerçekleştirirsen istediğini yapabilirsin sanki.

(05 Mar '13, 13:28) huseying huseying's gravatar image

yazdığınızı denemiştim gibi geliyor. Ama olmamıştı. Vaktiniz varsa WCF tarafında bir metod yazıp client tarafında yakalamayı dener misiniz?

(05 Mar '13, 13:40) emax_64 emax_64's gravatar image

Şu anda deneyemem.ama yarın deneyip sonucu buraya yazacağım.

(05 Mar '13, 14:21) huseying huseying's gravatar image

tamm tşkler.

(05 Mar '13, 14:50) emax_64 emax_64's gravatar image
1

sizin için örnek bir proje oluşturdum ve github a yükledim :

https://github.com/hgencer/WcfTry/

projede de göreceğiniz gibi null nesneyi kontrol edebiliyorum.

(06 Mar '13, 03:40) huseying huseying's gravatar image

ewet dediğiniz gibi çaıştırmışsınız. Ben projemi tekrar gözden geçirmeliyim. İlgilendiğiniz için tşkler.

(06 Mar '13, 08:20) emax_64 emax_64's gravatar image

@huseying, büyük özveri tebrikler...

(06 Mar '13, 08:22) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
1

@emax_64 Yardımcı olduysam ne mutlu.

@alirza-adyahsi teşekkür ederim.

(06 Mar '13, 09:34) huseying huseying's gravatar image
11 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×12

Soruldu: 04 Mar '13, 15:23

Görüntüleme: 678 kez

Son güncelleme: 06 Mar '13, 09:34

powered by BitNami OSQA