6

Bu sorunu VS Designer ile çalışmayı imkansız kılıyor.VS Tasarımcısı, her zaman "x özelliği bir get/set yöntemine sahip değil" özel durumu atar "

ınvalidoperationexception: Mülkiyet "myObject.myProperty" değil böyle bir stacktrace ile, benim XAML kodu düzenlerken ediyorum ve VS Tasarımcı bir noktada bir istisna olacağını Ne hâle mi bir get yöntemine sahip

StackTrace:

Microsoft.Expression.DesignModel.Metadata.LocalClrPropertyImplementation.GetValue (Nesne hedef) de Microsoft.Expression.DesignModel.Metadata.ClrPropertyR at Microsoft.Expression.DesignModel.Metadata.PropertyReference.PartialGetValue de Microsoft.Expression.DesignModel.Metadata.PropertyReference.TryGetValue (Obje & değeri ReferenceStep referenceStep, nesne hedef) de eferenceStep.GetValue (Obje valueToInspect) (nesne hedef, ınt32 initialStepIndex , Int32 [...]

de finalStepIndex) ... ve en az bir 50 hatları için devam ediyor. Söz konusu

Mülkiyet böyle bir şeydir:

private bool _MyProperty = true; 

public bool MyProperty 
{ 
    set 
    { 
     if (_MyProperty != value) 
     { 
      // Do a few things here 
      this._MyProperty = value; 
     } 
    } 
} 

Şimdi, bu iyi çalışır ve benim projede bu gibi şeyler onlarca, VS önce onlarla beni rahatsız olmamıştı. Eğer VS'yi tekrar kapatmaya ve açmaya çalışırsam, bir süre çalışmama izin verir ve sonunda bu hataları tekrar atmaya başlayacaktır.

Çözümün, Çözüm> Temiz Çözüm'den temizlemeyi denedim, işe yaramıyor.

Gerçekten sorunun ne olduğunu bilmiyorum. Yani, 2 ay önce bu özelliği yarattım, neden VS sadece bana şimdi bunu söylüyor?

Bunun için bir düzeltme var mı, yoksa oluşturduğum her parametrede tüm bu gereksiz get/set yöntemlerini el ile eklemek zorunda mıyım?

+0

Bu özellik 'değerini çıkarmaya mı çalışıyorsunuz uygulamanızda yerde MyProperty' zaman? Bütün bu GetValue() yöntemleri ne yapar? –

+0

Kasıtlı olarak sadece yazma özelliklerine sahip misiniz? –

+0

@SaagarEliasJacky Hayır değilim ve bu istisnayı aldığımda sadece XAML'deki bazı denetimlerin düzenini değiştiriyordum. Ve farklı sayfalarda rastgele oluyor. – Sergio0694

cevap

1

Hata iletinize göre oldukça açık olduğunu düşünüyorum: "Mülk" MyObject.MyProperty "bir alma yöntemine sahip değil", MyObject.MyProperty bir yere erişerek MyProperty kullanıyor olmalısınız, bunu denetlemeniz gerekir , ve bir başka yöntem ise, MyProperty'ı bu sınıfın dışında göstermek istemezseniz, 'özel kümeyi' kullanmanız gerekir, bir kamu düzenleyiciniz olurken alıcının olmaması çok tuhaftır, umarım Bazı yardımlar

+0

Dediğim gibi, bu özelliği kodumun herhangi bir yerinde okuma modunda kullanmıyorum ve VS'yi yeniden başlatmak sorunu çözüyor. Artı, derleyici 0 hata verir ve uygulama iyi çalışır. VS sadece bu hata ile rastgele karışıklık alır, şu anda örneğin iyi çalışıyor gibi 10 gün gibi. – Sergio0694

+0

eğer öyleyse, bu nesne üzerinde serileştirme yaptınız mı, yoksa bazı durumlarda serileştirme tetikleniyor mu? Seri hale getirme hem alıcı hem de ayarlayıcıya ihtiyaç duyar, nesneniz serileştirilemediğinde çok yaygın bir istisnadır. –

0

Yalnızca yazım özelliklerini (yalnızca yazma olarak tanımlanmış) kullanarak windows form tasarımcısı hatalarını (VS 2015) tecrübe ettim. Sadece formu okuma yazma (set/get) yaparak yaparak formu geri alabilirim.

Bunu bir yönteme dönüştürmememin tek nedeni, tasarım zamanında ihtiyacımın "ayarlanabilmesi" idi.

Umut bu kimse yardımcı olur - ya da ben unutuyorum ve bulmak Bu yayını tekrar :)

İlgili konular