C # 'ta İfade Ağaçlarını Seri Hale Getirme ve Seri Durumdan Çıkarma


Yanıtlar:


48

C # 'ta İfade Ağaçlarının Seri Hale Getirilmesi ve Serileştirilmesi'nin bahsettiği kütüphane üzerinde çalışmaya devam ettim

Görünüşe göre proje terk edilmiş (2008) ama üzerinde biraz çalıştım ve şimdi .NET 4.0 ve Silverlight ile çalışıyor. Kodlarında hata düzeltmeleri yaptım ve ayrıca daha DAL'dan bağımsız hale getirdim.

http://expressiontree.codeplex.com/


2
Çalışan bir çözüm bulmak için +1. Orijinal kitaplığı MSDN'de kullanmayı denedim ve basit bir ikili ifade düğümünün serisini kaldıramadı. Projeniz harika çalışıyor. Teşekkürler!
Jacobs Data Solutions

2
Nuget üzerine bir proje mi?
Mohammad Dayyan

@MohammadDayyan, Microsoft, paket yönetim aracı konusunda kararsız ve tutarsız davrandı. Bazen ASP.NET CORE paketleri Nuget ile yüklenebilir, diğer durumlarda örneğin bir MongoDB sürücüsü NuGet aracılığıyla kullanılamaz. Yine de en azından Microsoft, NPM'nin paketleri yönetmesine izin verecek içgörüye sahipti. NPM bu sokmaya eğilimlidir
T. Webster

@RepoMan bir problemi çözmek, birine yardım ettiğinde benim için çok daha değerli. Belki kullanımla ilgili bazı belgelere katkıda bulunabilirsiniz - hadi konuşalım ..
T. Webster

14

Diğer seçenek, code.msdn.com adresindeki İfade Ağacı Serileştirme projesidir - burada ihtiyaç duyulan daha fazlası gibi görünüyor?

UPD: Şimdi http://archive.msdn.microsoft.com/exprserialization


İfade Ağacı Serile kod kod galeri kaldırılır code.msdn.microsoft.com/exprserialization , bu kadar ya da daha iyi alternatifler taşınır bir fikrin?
Kiran Bheemarti

@Kiran: Ne demek istiyorsun? Kod indirme işlemi hala orada; sayfanın üst kısmındaki indirilenler sekmesini kontrol edin.
Robert Harvey

Evet şimdi, muhtemelen geçici bir şey, sayfa dün yukarıdaki bağlantıyı denediğimde bir proje bulunamadı hatası atıyordu. Projeyi görüyorum ve şimdi indiriyorum. Teşekkürler!!!
Kiran Bheemarti

13

GitHub'dan bir proje var / Nuget denilen MetaLinq amaçları daha kolay ifade ağaçları ile çalışma yapmak olduğunu.

Değişken ve tamamen Serileştirilebilir olan normal İfadeler ve 'Düzenlenebilir İfadeler' arasında dönüşüm sağlar, bu nedenle Json, Xml, Binary vb. İle kullanılabilir.

Daha fazla bilgi için bu blog gönderisine de bakın.


12

yeni kütüphanem Serialize.Linq'e bir göz atın . Linq ifadelerini json, xml ve binary olarak seri hale getirir.


bunu daha önce kullandın mı deneyiminiz nasıldı / herhangi bir sınırlama buldunuz?
Alexandre Brisebois

son projemde benzer bir versiyonunu kullandım. iyi çalışıyor.
esskar

Neden katmanlar arasındaki satırları daha da kötüleştiren bir şey yazasınız? Kütüphaneniz bir şekilde DTO'ları (ve bunlara yönelik sorguları) etki alanı nesnelerine / sorgularına otomatik olarak dönüştürmediği sürece, DAL etki alanı nesnelerinin BAL'a maruz kalmasını teşvik ediyorsunuz. Belgelerde böyle bir davranışı gösteren hiçbir şey görmüyorum.
M.Babcock

@ M.Babcock: DTO vs Entities ifadelerinizde kullanmak istediğiniz şey kütüphane mantığının bir parçası değildir.
esskar

4
@esskar blogunuz / sitenizin tamamı gitmiş görünüyor. taşındı mı?
Jon

3

Tam olarak değil; ancak, Dinamik LINQ örneği biraz yardımcı olabilir. Bir ifadeyi kesinlikle bir dizeye serileştirebilirsiniz (bir dereceye kadar - jenerikler biraz karışık görünür), ancak dahili ayrıştırıcı yoktur.


Örneği kullanarak bir ifadeyi dizgeye nasıl serileştireceğimi bulamıyorum, sadece diğer yönü dizge olarak alıp bir ifade ağacı oluşturmak için. Hangi yöntemi ararım?
Christopher Edwards


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.