註冊副檔名使用自訂的註冊屬性
在某些情況下,您可能需要建立新的登錄屬性,您的擴充功能。 若要加入新的登錄機碼,或將新值加入至現有的金鑰,您可以使用註冊屬性。 新的屬性都必須衍生自RegistrationAttribute,而且必須覆寫Register和Unregister方法。
建立自訂屬性
下列程式碼會示範如何建立新的註冊屬性。
[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
public class CustomRegistrationAttribute : RegistrationAttribute
{
}
AttributeUsageAttribute適用於指定程式要的項目 (類別、 方法等等) 相關的屬性,是否就可以使用一次以上,以及是否可繼承的屬性類別。
建立登錄機碼
下列程式碼,自訂屬性會建立所註冊的 VSPackage 機碼下的自訂子機碼。
public override void Register(RegistrationAttribute.RegistrationContext context)
{
Key packageKey = null;
try
{
packageKey = context.CreateKey(@"Packages\{" + context.ComponentType.GUID + @"}\Custom");
packageKey.SetValue("NewCustom", 1);
}
finally
{
if (packageKey != null)
packageKey.Close();
}
}
public override void Unregister(RegistrationContext context)
{
context.RemoveKey(@"Packages\" + context.ComponentType.GUID + @"}\Custom");
}
建立新的值,在 [現有的登錄機碼
您可以加入現有的索引鍵的自訂值。 下列程式碼會示範如何將新值加入至 VSPackage 登錄機碼。
public override void Register(RegistrationAttribute.RegistrationContext context)
{
Key packageKey = null;
try
{
packageKey = context.CreateKey(@"Packages\{" + context.ComponentType.GUID + "}");
packageKey.SetValue("NewCustom", 1);
}
finally
{
if (packageKey != null)
packageKey.Close();
}
}
public override void Unregister(RegistrationContext context)
{
context.RemoveValue(@"Packages\" + context.ComponentType.GUID, "NewCustom");
}