ProvideLanguageCodeExpansionAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kod parçacıkları için dil hizmeti desteğini kaydeder.
public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageCodeExpansionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ProvideLanguageCodeExpansionAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ProvideLanguageCodeExpansionAttribute = class
inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageCodeExpansionAttribute
Inherits RegistrationAttribute
- Devralma
- Öznitelikler
Örnekler
Bu örnekte, bu kullanıcı tanımlı özniteliğin bir dil hizmeti için kod parçacıklarına yönelik desteği kaydetmek için nasıl kullanıldığı gösterilmektedir.
Not
Visual C# adın "Öznitelik" bölümünü bırakarak kullanıcı tanımlı özniteliğin kısa bir biçimine izin verir. Bu kısaltma biçimi, bu sınıfta ve tüm diğer örneklerde kullanılır.
using Microsoft.VisualStudio.Shell;
namespace MyLanguagePackage
{
internal class MyConstants
{
public const string languageName = "MyLanguage";
public const int languageNameResourceID = 106;
public const string languageIdentifier = "mylanguage";
public const string snippetsIndexFilePath = @"%InstallRoot%\MyLanguage\SnippetsIndex.xml";
}
[ProvideCodeExpansion(typeof(MyLanguageService),
MyConstants.languageName,
MyConstants.languageNameResourceID,
MyConstants.languageIdentifier,
MyConstants.snippetsIndexFilePath,
// Optional code expansion properties
SearchPaths = @"%InstallRoot%\MyLanguage\Snippets\%LCID%\Snippets;" +
@"\%MyDocs%\Code Snippets\MyLanguage\My Code Snippets";
)]
class MyLanguagePackage
{
}
}
Açıklamalar
Bu kullanıcı tanımlı öznitelik (C#'ye özgüdür) Visual Studio'ya kod parçacıkları için bir dil hizmetinin desteğini kaydetmek için gerekli bilgileri sağlamak için kullanılır. Bu öznitelik tarafından belirtilen değerler derlemede meta veri olarak depolanır. Bu meta veriler daha sonra regpkg.exe programı (VSIP SDK'sının bir parçası) gibi bir program tarafından Visual Studio'ya dil hizmetini belirten ilgili kayıt defteri anahtarlarını ve girdilerini oluşturmak için kullanılır.
tarafından etkilenen ProvideLanguageCodeExpansionAttribute kayıt defteri girdileri aşağıdaki kayıt defteri anahtarı altında bulunur:
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
VisualStudio\
[X.Y]\
Languages\
CodeExpansions\
[language name]\
(Default) = reg_sz: [Language Service GUID]
DisplayName = reg_sz: [language name resource ID]
IndexPath = reg_sz: [path to snippet index file]
Package = reg_sz: [Package GUID]
LangStringID = reg_sz: [language identifier]
Paths\
(Default) = reg_sz:
[language name] = reg_sz: [paths to snippets]
Konum:
[X.Y] , Visual Studio'nun sürümüdür, örneğin, 8.0Exp.
[dil adı] , dilin adıdır (sınıf oluşturucusunun ikinci parametresinde ProvideLanguageCodeExpansionAttribute belirtildiği gibi).
[dil adı kaynak kimliği] , görüntüleme amacıyla kullanılan dil adının kaynak kimliğidir ve bu nedenle yerelleştirilebilir.
[kod parçacığı dizin dosyasının yolu] , kod parçacıklarının konumunu açıklayan dizin dosyasının tam yoludur.
[dil tanımlayıcısı] , tüm kod parçacıklarını ve kod parçacıkları dizin dosyasını işaretlemek için kullanılan bir dizedir. Bu dize, bir kod parçacıkları kümesini belirli bir dil hizmetiyle ilişkilendirmek için kullanılır.
[kod parçacıklarının yolları] Dizin dosyası kullanılamıyorsa kod parçacıklarını aramak için noktalı virgülle ayrılmış yol listesi.
Yollar, Visual Studio için yüklü kök ve kullanıcının Belgelerim konumu gibi konumlara işaret eden değiştirme değişkenleri içerebilir. Bu değiştirme değişkenlerinin ayrıntıları için bkz. Eski Dil Hizmetinde Kod Parçacıkları desteği.
Sınıf oluşturucu gerekli en düşük parametreleri belirtir. Kullanıcı tanımlı öznitelik sınıfı isteğe bağlı adlandırılmış parametreleri de destekler. Bu adlandırılmış parametreler, gerekli parametrelerden sonra oluşturucunun parametre listesinde belirtilir. Bu sınıfta hem get hem de set işleçlerini destekleyen tüm özellikler adlandırılmış parametre olarak belirtilebilir. Örnek, adlandırılmış parametrelerin nasıl kullanıldığını gösterir.
Dil hizmetleri için aşağıdaki kullanıcı tanımlı öznitelikler kullanılır:
Öznitelik | Açıklama |
---|---|
ProvideLanguageServiceAttribute | Dil hizmetini Visual Studio'ya kaydeder ve hangi özelliklerin desteklendiği belirtir. |
ProvideLanguageExtensionAttribute | Bir dosya uzantısını dil hizmetiyle ilişkilendirir. |
ProvideLanguageEditorOptionPageAttribute | Dil hizmetine özgü Seçenekler iletişim kutusu için bir özellik düğümü veya sayfa belirtir. |
ProvideLanguageCodeExpansionAttribute | Dil hizmetinde kod parçacıklarını desteklemek için konum bilgilerini belirtir. |
ProvideServiceAttribute | Bir dil hizmetini Visual Studio hizmeti olarak kaydeder. Yönetilen kodda sağlanan tüm hizmetler bu özniteliği kullanır. |
Devralanlara Notlar
Bu öznitelik sınıfı öğesinden devralınamaz, bu nedenle uygulanacak bir şey yoktur.
Arayanlara Notlar
Bu öznitelik sınıfı genellikle birincil VSPackage sınıfınıza uygulanır, ancak herhangi bir sınıfta görüntülenebilir. Bu öznitelik yalnızca bir kez görünmelidir.
Oluşturucular
ProvideLanguageCodeExpansionAttribute(Object, String, Int32, String, String) |
ProvideLanguageCodeExpansionAttribute sınıfının yeni bir örneğini başlatır. |
Özellikler
ForceCreateDirs |
Oluşturulması gereken dizini veya dizinleri içeren noktalı virgülle ayrılmış bir dize alır veya ayarlar. |
LanguageName |
Dilin adını alır. |
LanguageServiceSid |
Dil hizmetinin GUID değerini alır. |
SearchPaths |
Kod parçacıklarını aramak için varsayılan yolları içeren noktalı virgülle ayrılmış bir dize alır veya ayarlar. |
ShowRoots |
Kod parçacıklarının köklerinin gösterilip gösterilmeymeyeceğini alır veya ayarlar. |
TypeId |
RegistrationAttribute türetilmiş sınıflarının System.ComponentModel.TypeDescriptor.GetAttributes(...) ile çalışmasına izin vermek için TypeID özelliğini geçersiz kılın. Bu özellikten türetilen bir özniteliğin, yalnızca bir sınıfa uygulanabilecek örnekler üzerinde daha iyi bir denetime ihtiyacı varsa bu özelliği geçersiz kılması gerekir. (Devralındığı yer: RegistrationAttribute) |
Yöntemler
GetPackageRegKeyPath(Guid) |
VSPackage'ın kayıt defteri yolunu (uygulamanın kayıt defteri köküne göre) alır. (Devralındığı yer: RegistrationAttribute) |
Register(RegistrationAttribute+RegistrationContext) |
Sınıf oluşturucu tarafından belirtilen tüm kayıt defteri anahtarlarını ve girdilerini oluşturur. |
Unregister(RegistrationAttribute+RegistrationContext) |
Sınıf oluşturucu tarafından belirtilen tüm kayıt defteri anahtarlarını ve girdilerini kaldırır. |