Aracılığıyla paylaş


Geçersiz kılma ve üretilen sınıfları genişletme

dsl tanımınızı, güçlü bir etki alanına özgü dilini temel araçlar kümesi oluşturabilirsiniz bir platformdur.Pek çok uzantıları ve adaptations geçersiz kılma ve dsl tanımından üretilen sınıfları genişletme tarafından yapılabilir.Bu sınıflar, dsl Definition şemada açıkça tanımlanmış etki alanı sınıfları değil aynı zamanda araç, explorer, seri hale getirme ve benzeri tanımlayan diğer sınıflar içerir.

Genişletilebilirlik mekanizması

Çeşitli mekanizmalar oluşturulan kodu genişletmeye olanak sağlanır.

Bb126289.collapse_all(tr-tr,VS.110).gifKısmi bir sýnýftaki yöntemleri geçersiz kılma

Kısmi sınıf tanımları, birden fazla yerde tanımlanması için bir sınıf olanak sağlar.Böylece, oluşturulan kodu sizin yazmanız kodundan ayrı.El ile yazılmış kodunuzda, sınıfları tarafından üretilen kod devralınan kılabilirsiniz.

Örneğin, dsl tanımınızı adlı bir etki alanı sınıf tanımlamak, Book, geçersiz kılma yöntemleri ekler özel kod yazabilirsiniz:

public partial class Book

{

protected override void OnDeleting()

{

MessageBox.Show("Deleting book " + this.Title);

base.OnDeleting();

} }

[!NOT]

Üretilen sınıfın yöntemleri geçersiz kılmak için her zaman oluşturulan dosyaları ayrılmış bir dosyada kodunuzu yazın.Genellikle, CustomCode adlı bir klasörde dosya yer alıyor.Yaratılan kodu değişiklik yaparsanız, dsl tanımından kodu yeniden açtığınızda bunlar kaybolacak.

Tür geçersiz kılmak hangi yöntemleri bulmak için bir boşluk bırakarak sınıfındaki geçersiz.IntelliSense tooltip hangi yöntemleri geçersiz kılınabilir söyleyecektir.

Bb126289.collapse_all(tr-tr,VS.110).gifÇift türetilmiş sınıflar

Üretilen sınıfları yöntemleri çoğu modelleme namespaces sınıflarda sabit bir dizi devralınır.Ancak, bazı yöntemleri oluşturulan kodda tanımlanır.Normalde, bunları kılamaz anlamına gelir; Kısmi bir sınıfta başka bir kısmi aynı sınıf tanımında tanımlanır yöntemleri kılamaz.

Ayarlayarak bu yöntemler yine de, kılabilirsiniz Oluşturduğu çift türetilen etki alanı sınıfı için bayrak.Oluşturulacak Bu nedenler iki sınıf, diğer bir soyut temel sınıf olan biri.Base sınıfında tüm yöntem ve özellik tanımları olan ve yalnızca türetilmiş bir sınıf içerisinde kurucudur.

Örneğin, örnekteki Library.dsl, CirculationBook etki alanı sınıfı olan GeneratesDouble Derived özelliðini true.Bu etki alanı sınıfı için oluşturulan kodu iki sınıf içerir:

  • CirculationBookBase, bir Özet olduğu ve tüm yöntemleri ve özellikleri içerir.

  • CirculationBook, dan türetilmiş CirculationBookBase.Boş dışında kendi yapıcılar.

Herhangi bir yöntemi geçersiz kılmak için kısmi bir türetilmiş bir sınıf tanımı oluşturma gibi CirculationBook.Hem oluşturulan ve modelleme çerçevesinden devralınan yöntemleri kılabilirsiniz.

Bu yöntem tüm modeli öğeleri, ilişkiler, şekiller, çizimler ve bağlayıcıları içeren öğe türü ile kullanabilirsiniz.Oluşturulan diğer sınıfların yöntemlerini geçersiz kılar.ToolboxHelper gibi her zaman çift türetilen bazı sınıflar oluşturulur.

Bb126289.collapse_all(tr-tr,VS.110).gifÖzel yapıcılar

Bir kurucu kılamaz.Hatta çift türetilmiş sınıflarda, Oluşturucu türetilmiş bir sınıf içerisinde olmalıdır.

Kendi kurucunuzu sağlamak isterseniz ayarlayarak bunu yapabilirsiniz Has Custom Constructor etki alanı sınıf dsl tanımı için.Tıklattığınızda Dönüştürme tüm şablonları, o sınıf için bir yapıcı oluşturulan kodu içermez.Bu eksik bir çağrı içerir.Çözümü oluþturun, bu bir hata raporu neden olur.Oluşturulan kodda sağlaması açıklayan bir açıklama görmek için hata raporu çift tıklatın.

Kısmi sınıf tanımının oluşturulan dosyalardan ayrı bir dosyada yazma ve yapıcı sağlar.

Bb126289.collapse_all(tr-tr,VS.110).gifBayraklı uzantısı noktaları

Bayraklı uzantısı noktası dsl tanımında bir özellik ya da özel bir yöntem sağlayacaktır belirtmek üzere bir onay kutusu ayarlayabileceğiniz yerdir.Özel yapıcılar bir örnek olur.Diğer örnekler ayarı Kind hesaplanan veya özel depolama veya ayar etki alanı özellik Olan özel bağlantı Oluşturucu bayrağı.

Her durumda, bayrağı ve kodu yeniden bir derleme hatası neden olur.Sağlamak zorunda açıklayan yorumu görmek için hatayı çift tıklatın.

Bb126289.collapse_all(tr-tr,VS.110).gifKurallar

Hareket Yöneticisi, bir hareket içinde belirtilen olay, bir özellik değişikliği gibi oluştu sonundan önce çalışan kurallar tanımlamanıza olanak sağlar.Kurallar genellikle deposunda farklı öğeler arasında synchronism sağlamak için kullanılır.Örneğin, kurallar, Diyagram modeli geçerli durumunu görüntüler emin olmak için kullanılır.

Her sınıf için ayrı ayrı kuralları tanımlanır, böylece kodu olması gerekmez, her nesne için kural kaydeder.Daha fazla bilgi için bkz. Kuralları modelindeki değişiklikleri yaymak.

Bb126289.collapse_all(tr-tr,VS.110).gifDeposu olayları

Modelleme deposu eklenmesi ve silinmesi öğelerinin özellik değerleri, yapılan değişiklikler de dahil olmak üzere depolama alanında değişiklik belirli türleri dinlemek için kullanmak ve benzeri bir olay mekanizması sağlar.Değişiklik yapılmış olan hareket kapanışından sonra olay işleyicileri olarak adlandırılır.Genellikle, bu olaylar, mağaza dışında kaynakları güncelleştirmek için kullanılır.

Bb126289.collapse_all(tr-tr,VS.110).gif.net olayları

Şekiller üzerindeki bazı olaylara abone olabilirsiniz.Örneğin, bir şekil üzerinde fare tıklatmaları dinleyebilirsiniz.Her nesne için olaya abone olan kod yazmanýz gerekir.Bu kod, InitializeInstanceResources() bir geçersiz kılma yazılabilir.

Bazı olaylar, decorators üzerinde bir şekil çizmek için kullanılan ShapeFields üzerinde oluşturulur.Bir örnek için bkz. Nasıl yapılır: bir şekil ya da Decorator tıklatmada müdahale.

Bu olaylar, genellikle bir işlem içinde gerçekleşmez.Depolama alanında değişiklik yapmak istiyorsanız, bir hareket oluşturmanız gerekir.