Aracılığıyla paylaş


Özel Özellikler bir katman Diyagram ekleme

Katman diyagramları için uzantı kodunu yazdığınızda Visual Studio Ultimate, Katman diyagramında herhangi bir öğe ile değerler saklayabilirsiniz.Diyagram kaydedilip yeniden değerleri devam edecek.Görünür bu özelliklere sahip olabilir özelliklerini pencere böylece kullanıcılar görebilir ve düzenleyebilirsiniz.Örneğin, kullanıcıların her katman için normal bir ifade belirtin ve her katmanda sınıflarının adlarını kullanıcı tarafından belirtilen desene uyduğunu için doğrulama kodu yazma olanak verebilir.

Özellikleri kullanıcıya görünmez

Katman diyagramında herhangi bir öğe değerleri eklemek için kod istiyorsanız, bir mef bileşeni tanımlamak gerekmez.Adlı bir sözlük var. Properties , ILayerElement.Herhangi bir katman öğe sözlüğe marshalable değerleri eklemeniz yeterlidir.Katman diyagramı bir parçası olarak kaydedilir.Daha fazla bilgi için bkz. Gezinme ve Program kodu katman modeller güncelleştiriliyor.

Kullanıcının düzenleyebileceği Özellikler

Ön hazırlık

Önemli notÖnemli

Özellikler görünür hale getirmek için Katman Özellikleri görünür olmasını istediğiniz her bilgisayarda aşağıdaki değişiklik yapmalısınız.

  1. Not Defteri'ni kullanarak çalıştırmak yönetici olarak çalıştır.%ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\ExtensibilityRuntime\extension.vsixmanifest öğesini açın.

  2. İçinde Content öğesi ekleyin:

    <MefComponent>Microsoft.VisualStudio.ArchitectureTools.Extensibility.Layer.Provider.dll</MefComponent>
  3. Windows Başlat menüsü, altında Microsoft Visual Studio 2012, Visual Studio Araçları, açık Geliştirici komut istemi.

    Girin:

    devenv /rootSuffix /updateConfiguration

    devenv /rootSuffix Exp /updateConfiguration

  4. Visual Studio'yu yeniden başlatın.

Kodunuzu bir VSIX projesi olduğundan emin olun

Özelliğinizi komutu, hareketi veya doğrulama projesi parçası ise, hiçbir şey eklemenize gerek yoktur.Visual Studio genişletilebilirliğini projesinde bir mef bileşeni olarak tanımlanan kod, özel özellik için tanımlanmış olmalıdır.Daha fazla bilgi için bkz: Komutlar ve hareket katmanı Diyagram ekleme veya Özel mimari doğrulama katmanı Diyagram ekleme.

Özel özellik tanımlamak

Özel bir özellik oluşturmak için bu gibi bir sınıf tanımlayın:

[Export(typeof(IPropertyExtension))]
public class MyProperty 
      : PropertyExtension<ILayerElement>
{
  // Implement the interface.
}

Temel özellikler tanımlayabilirsiniz ILayerElement veya dahil ondan türetilen sınıflardan biri:

  • ILayerModel-model

  • ILayer-her katmanı

  • ILayerDependencyLink-katmanları arasındaki bağlantılar

  • ILayerComment

  • ILayerCommentLink

Kendi özel özelliklerini görmek için

Önemli notÖnemli

Modelleme projesi yük önce Mimari Gezgini yalnızca açık olan özel özellikleri görüntülenir.Mimari Gezgini'ni açın ve sonra durur ve özel özelliklerini görmek için Visual Studio'yu yeniden gerekebilir.Üzerinde Mimari menüsünden seçin Windows, Mimari Gezgini.

Kendi özel özelliklerini sınamak için Visual Studio'nun deneysel örneği başlatmak için F5 tuşuna basın.Uygun katmanı öğesi örneği oluşturun ve bunu seçin.Kendi özel özellik Özellikler penceresinde görürsünüz.

Örnek

Tipik bir özel özellik tanımlayıcısı aşağıdaki koddur.Katman model üzerinde bir Boolean özelliği tanımladığı (ILayerModel) değerlerini sağlamak için bir özel doğrulama yöntemi kullanıcı sağlar.

using System;
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Layer;

namespace MyNamespace
{
  /// <summary>
  /// Custom properties are added to the Layer Designer via a custom
  /// Property Descriptor. We have to export this Property Descriptor
  /// using MEF to make it available in the Layer Designer.
  /// </summary>
  [Export(typeof(IPropertyExtension))]
  public class AllTypesMustBeReferencedProperty 
      : PropertyExtension<ILayerModel>
  {
    /// <summary>
    /// Each custom property must have a unique name. 
    /// Usually we use the full name of this class.
    /// </summary>
    public static readonly string FullName =
      typeof(AllTypesMustBeReferencedProperty).FullName;

    /// <summary>
    /// Construct the property. Notice the use of FullName.
    /// </summary>
    public AllTypesMustBeReferencedProperty()
            : base(FullName)
    {  }

    /// <summary>
    /// The display name is shown in the Properties window.
    /// We therefore use a localizable resource.
    /// </summary>
    public override string DisplayName
    {
      get { return Strings.AllTypesMustBeReferencedDisplayName; }
    }

    /// <summary>
    /// Description shown at the bottom of the Properties window.
    /// We use a resource string for easier localization.
    /// </summary>
    public override string Description
    {
      get { return Strings.AllTypesMustBeReferencedDescription; }
    }

    /// <summary>
    /// This is called to set a new value for this property. We must
    /// throw an exception if the value is invalid.
    /// </summary>
    /// <param name="component">The target ILayerElement</param>
    /// <param name="value">The new value</param>
    public override void SetValue(object component, object value)
    {
      ValidateValue(value);
      base.SetValue(component, value);
    }
    /// <summary>
    /// Helper to validate the value.
    /// </summary>
    /// <param name="value">The value to validate</param>
    private static void ValidateValue(object value)
    {  }

    public override Type PropertyType
    { get { return typeof(bool); } }

    /// <summary>
    /// The segment label of the properties window.
    /// </summary>
    public override string Category
    { 
      get
      {
        return Strings.AllTypesMustBeReferencedCategory;
      }
    }
  }
}

Ayrıca bkz.

Kavramlar

Katman diyagramları genişletme