ResourcesAttribute class
衍生自Object.Attribute ,用來指定屬性應該當地語系化的方式。
Inheritance hierarchy
System.Object
System.Attribute
Microsoft.SharePoint.WebPartPages.ResourcesAttribute
Namespace: Microsoft.SharePoint.WebPartPages
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
<AttributeUsageAttribute(AttributeTargets.Property Or AttributeTargets.Field)> _
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class ResourcesAttribute _
Inherits Attribute
'用途
Dim instance As ResourcesAttribute
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class ResourcesAttribute : Attribute
備註
在執行階段, CustomPropertyToolPart會尋找ResourcesAttribute類別。如果找到, CustomPropertyToolPart會逐一查看的LoadResource方法 (您必須覆寫這個方法) 使用ResourcesAttribute的資源值。如果找不到資源,則會將CustomPropertyToolPart使用者介面建立具有預設值。否則, CustomPropertyToolPart使用者介面是建置當地語系化的值。Microsoft.NET Framework 只會提供當地語系化值的屬性標籤、 描述及類別標籤。不會當地語系化的基底屬性名稱。如果沒有定義ResourcesAttribute類別, CustomPropertyToolPart使用者介面會回復為非當地語系化的中繼資料 (也就是CategoryAttribute、 DescriptionAttribute、 FriendlyNameAttribute和屬性的內部名稱)。
Examples
下列程式碼範例示範如何將自訂屬性時, CustomPropertyToolPart使用者介面中顯示的當地語系化。
'----------------------------------------------------------------------
'
' Code Summary: How to localize your custom property when displayed in the Property Grid.
' FriendlyName, Description, and Category are localized.
'----------------------------------------------------------------------
Imports System
Imports System.IO
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports Microsoft.SharePoint.WebPartPages
Imports Microsoft.SharePoint
Imports System.Xml.Serialization
Imports System.Collections.Specialized
Imports System.Collections
Imports System.Resources
Imports System.Reflection
Imports System.Drawing
Imports System.Globalization
Imports System.Runtime.InteropServices
Namespace WebControlLibrary4
'/ <summary>
'/ Summary description for WPLocalizedResource.
'/ </summary>
<GuidAttribute("9ED54F84-A89D-4fcd-A854-44251E925C55"),
XmlRoot([Namespace] := "foo"),
ToolboxData("<{0}:WPLocalizedResource
runat=server></{0}:WPLocalizedResource>")> _
Public Class WPLocalizedResource
Inherits Microsoft.SharePoint.WebPartPages.WebPart
Private Const c_MyText_Localized As String = "My Localized Property"
Private _myText_Localized As String
Public Sub New()
_myText_Localized = c_MyText_Localized
End Sub
'RESOURCES LOCALIZATION
'Property that is localized. Use the ResourceAttibute.
'[ResourcesAttribute (PropertyNameID=1, CategoryID=2, DescriptionID=3)]
<ResourcesAttribute("1", "2", "3"), Category("Cool Properties"),
DefaultValue(c_MyText_Localized),
WebPartStorage(Storage.Personal),
FriendlyNameAttribute("My Text Localized"),
Description("MyText Localized")> _
Public Property MyText_Localized() As String
Get
Return _myText_Localized
End Get
Set
_myText_Localized = value
End Set
End Property
Public Overrides Function LoadResource(myID As String) As String
Dim rm As New ResourceManager("WebControlLibrary4.Resource1",
[Assembly].GetExecutingAssembly())
Return rm.GetString(myID)
End Function
'RENDER THE WEBPART
Protected Overrides Sub RenderWebPart(output As HtmlTextWriter)
output.Write(("<br>Localized Resource Property Value: " +
Me.MyText_Localized))
End Sub
End Class
End Namespace
//---------------------------------------------------------------------
//
// Code Summary: How to localize your custom property when displayed in the Property Grid.
// FriendlyName, Description, and Category are localized.
//---------------------------------------------------------------------
using System;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint;
using System.Xml.Serialization;
using System.Collections.Specialized;
using System.Collections;
using System.Resources;
using System.Reflection;
using System.Drawing;
using System.Globalization;
using System.Runtime.InteropServices;
namespace WebControlLibrary4
{
/// <summary>
/// Summary description for WPLocalizedResource.
/// </summary>
[GuidAttribute("9ED54F84-A89D-4fcd-A854-44251E925C55")]
[XmlRoot(Namespace="foo")]
[ToolboxData("<{0}:WPLocalizedResource
runat=server></{0}:WPLocalizedResource>")]
public class WPLocalizedResource :
Microsoft.SharePoint.WebPartPages.WebPart
{
const string c_MyText_Localized = "My Localized Property";
private string _myText_Localized;
public WPLocalizedResource()
{
_myText_Localized = c_MyText_Localized;
}
//RESOURCES LOCALIZATION
//Property that is localized. Use the ResourceAttibute.
//[ResourcesAttribute (PropertyNameID=1, CategoryID=2, DescriptionID=3)]
[ResourcesAttribute ("1","2","3")]
[Category("Cool Properties")]
[DefaultValue(c_MyText_Localized),
WebPartStorage(Storage.Personal)]
[FriendlyNameAttribute("My Text Localized"),
Description("MyText Localized")]
public string MyText_Localized
{
get
{
return _myText_Localized;
}
set
{
_myText_Localized = value;
}
}
public override string LoadResource (string myID)
{
ResourceManager rm = new ResourceManager
("WebControlLibrary4.Resource1",
Assembly.GetExecutingAssembly());
return rm.GetString(myID);
}
//RENDER THE WEBPART
protected override void RenderWebPart(HtmlTextWriter output)
{
output.Write("<br>Localized Resource Property Value: " +
this.MyText_Localized);
}
}
}
Thread safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.