2015-08-21 6 views
17

Linq ifadeler izlemek için.nasıl ben Değer sütununda aşağıdaki hatayı alıyorum izle penceresine eklediğinizde Visual Studio 2015 yılında bir Linq ifadesini hata ayıklamak çalışıyorum VS 2015

field.DomainValues.Where (d => d.Active) hata CS1061: 'listesi' nerede için bir tanım ve tip bir birinci argüman kabul herhangi uzantısı yöntemi 'içermez 'Liste' bulunamadı (bir kullanarak yönergesini veya bir derleme başvurusu eksik?)

ben de aynı hatayı alıyorum komut penceresi içinde yürütmeye çalıştığınızda.

hata CS1061: 'Liste' 'Nerede' için bir tanım içermiyor ve türü 'Liste' bir ilk argüman kabul uzatma yöntemi '' bulunamadı (bir kullanarak yönergesini eksik ya bir montaj referansı) Ben destek bu makalede dayalı Visual Studio 2015 yılında bunun için eklenmiştir düşündüm

? - http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/support-for-debugging-lambda-expressions-with-visual-studio-2015.aspx

Ben bazı sınırlamalar özetliyor bu yazıyı buldum, ama hiçbiri benim x86 WPF uygulamam için geçerlidir. http://dotnetdeewane.blogspot.com/2015/03/support-for-debugging-lambda.html

  • ben System.Core yüklenmiş olduğunu görüyoruz benim çıkış penceresinde bir x86 Net 4.5 WPF uygulaması
  • var.

Yüklü 'C: \ WINDOWS \ Microsoft.Net \ düzeneği \ GAC_MSIL \ System.Core \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Core.dll'

  • Benim yöntemim statik değil, eşzamansız. Sınıfımın üstünde System.Linq ifadesini kullanıyorum.

    using Infragistics.Windows.Editors; 
    using Microsoft.Practices.ServiceLocation; 
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Windows; 
    
    public static ValueEditor SelectEditor(ColumnConfig config, TableInfo info, object value = null)  
    {  
        //do some stuff  
        field.FilteredDomainValues = field.DomainValues.Where(d => d.Active).ToList();  
        //do some other stuff  
    } 
    
  • ben kullanmıyorum dinamik türleri

Ben Visual Studio 2012 ve Visual Studio 2013 de yüklü.

Ben Resharper kullanıyorum. Ben VS seçenekleri kontrol edebilir başka

şey var mı?

+0

Kodunuzun System.Linq için bir kullanımı var mı? –

+0

Evet. Kodumu derler ve çalışır, yalnızca bu hatayı görecek yeni hata ayıklama araçlarını kullanmaya çalışır. Bunu göstermek için yayınımı güncelledim. – Darlene

+0

Başka bir kişi System.Linq ve Resharper uzantıları ile başka bir sorunu vardı. Https://stackoverflow.com/questions/453451/resolving-extension-methods-linq-ambiguity adresine bakın. –

cevap

0

Ben Hata ayıklama> Pencereler>Komut penceresi kullanın. Hata ayıklama ve deneme için kullandığım ifadeleri yazmamı sağlar. Tam bir Intellisense desteği olan

field.DomainValues 
field.DomainValues.Where(d => d.Active) 
field.DomainValues.Count(d => d.Active) 
field.DomainValues.Where(d => d.Active).First() 
+1

Hemen Penceresini kullanırken aynı hatayı görüyorum. Bunu eklemek için orijinal gönderimi güncelledim. – Darlene

+0

Geçmişte yaptığım şey sadece .ToArray() listem (hemen pencerede) ve oradan denetleniyor. – Kevin

1

Aynı problemi çözdüm ve Enumerable'a bir çağrı yapmasını sağladım.İzleme penceresindeki lambda ifadesini kontrol etmeden önce koddaki aralık

+0

Biraz daha spesifik olabilir misiniz? Sadece hata ayıklamayı kolaylaştırmak için gerçek kodunuza bir Enumerable.Range çağrısı eklediniz? Ya da Immediate/Watch'da koştunuz? – fahadash

+0

Geçici olarak benim hata ayıklama kodu için sadece –

+0

eklendi, Ben de denedim. Ve İzle/Hemen hala şikayet hakkında .Select(), .Where(), .Any() bulunamadı – fahadash

2

Anahtar, System.Core.dll dosyasının yüklü olduğundan emin olmak içindir.

#if DEBUG 
using System.Diagnostics; 
#endif 
+0

Budur. Bir Unit-Test projesinde de aynı problem vardı. Yukarıdaki satır hem Watch hem de Acil Pencereyi sabitledi. – t3chb0t

1

göre MSDN için:

NOT: doğal işlevleri gerektiren Lambda ifadeleri çalıştırmak için Bunu yapmanın bir kolay yolu ayıklama dosyanın üst kısmında aşağıdaki sahip olmaktır (örneğin LINQ-to-SQL) desteklenmez.

Ben senin yöntemin parametreleri bana ilgili oldukça SQL ses tipi TableInfo, ColumnConfig ait olduğunu, senin numunede görüyoruz. Field.DomainValues ​​herhangi bir şans ile DB'ye işaret eder ve çözümlenecek LINQ-To-SQL'i kullanır mı?

İlgili konular