Uložení dat v rozšíření systému SharePoint projektu
Při rozšíření systému SharePoint projekt můžete uložit řetězec data, která přetrvává i po ukončení projektu služby SharePoint.Data jsou zpravidla spojeny s konkrétním projektu položky nebo samotném projektu.
Pokud máte data, která není nutné přetrvávají, můžete přidat data na libovolný objekt v objektovém modelu SharePoint nástroje, který implementuje IAnnotatedObject rozhraní.Další informace naleznete v tématu Přidružení dat vlastní rozšíření nástroje služby SharePoint.
Ukládání dat přidružené položky projektu
Pokud máte data, která je spojena s konkrétní položku SharePoint projektu, například hodnota vlastnosti, který přidáte do položky projektu, můžete uložit data do souboru .spdata pro položku projektu.To lze provést pomocí ExtensionData vlastnost ISharePointProjectItem objektu.Přidat vlastnost data uložena do ExtensionData prvku v souboru .spdata pro položku projektu.Další informace naleznete v tématu Prvek ExtensionData.
Následující příklad kódu ukazuje, jak použít ExtensionData vlastnost k uložení hodnoty vlastnosti řetězce, která je definována ve vlastní typ položky projektu SharePoint.Větší příklad tohoto kódu v kontextu naleznete v tématu Jak: Přidat typ položky služby SharePoint projektu vlastní vlastnost.
Private Const TestPropertyId As String = "Contoso.ExampleProperty"
Private Const PropertyDefaultValue As String = "This is an example property."
<DisplayName("Example Property")> _
<DescriptionAttribute("This is an example property for project items.")> _
<DefaultValue(PropertyDefaultValue)> _
Public Property ExampleProperty As String
Get
Dim propertyValue As String = Nothing
' Get the current property value if it already exists; otherwise, return a default value.
If False = projectItem.ExtensionData.TryGetValue(TestPropertyId, propertyValue) Then
propertyValue = PropertyDefaultValue
End If
Return propertyValue
End Get
Set(ByVal value As String)
If value <> PropertyDefaultValue Then
' Store the property value in the ExtensionData property of the project item.
' Data in the ExtensionData property persists when the project is closed.
projectItem.ExtensionData(TestPropertyId) = value
Else
' Do not save the default value.
projectItem.ExtensionData.Remove(TestPropertyId)
End If
End Set
End Property
private const string PropertyId = "Contoso.ExampleProperty";
private const string PropertyDefaultValue = "This is an example property.";
[DisplayName("Example Property")]
[DescriptionAttribute("This is an example property for project items.")]
[DefaultValue(PropertyDefaultValue)]
public string ExampleProperty
{
get
{
string propertyValue;
// Get the current property value if it already exists; otherwise, return a default value.
if (!projectItem.ExtensionData.TryGetValue(PropertyId, out propertyValue))
{
propertyValue = PropertyDefaultValue;
}
return propertyValue;
}
set
{
if (value != PropertyDefaultValue)
{
// Store the property value in the ExtensionData property of the project item.
// Data in the ExtensionData property persists when the project is closed.
projectItem.ExtensionData[PropertyId] = value;
}
else
{
// Do not save the default value.
projectItem.ExtensionData.Remove(PropertyId);
}
}
}
Ukládání dat, které je přidružené k projektu
Když máte data projektu, jako je například hodnota vlastnosti, která přidáte do projektů, SharePoint, můžete uložit data souboru projektu (.csproj soubor nebo soubor .vbproj) nebo soubor projektu uživateli možnost (. csproj.user soubor nebo. soubor vbproj.user).Soubor, který můžete uložit data závisí na způsob zobrazení dat, které má být použit:
Pokud chcete data k dispozici pro všechny vývojáře, kteří SharePoint projekt otevřít, uložte data do souboru projektu.Tento soubor je vždy změnami zdroj ovládacího prvku databází, tak data v tomto souboru je k dispozici pro ostatní vývojáři, kteří projekt rezervovat.
Pokud chcete data k dispozici pouze pro aktuální vývojář, který projekt SharePoint otevřete v aplikaci Visual Studio, uložte data do souboru projektu uživateli možnost.Tento soubor není zaškrtnuté obvykle zdroj ovládacího prvku databází, takže data v tomto souboru není k dispozici pro ostatní vývojáři, kteří projekt rezervovat.
Ukládání dat do souboru projektu
Chcete-li uložit data do souboru projektu, převést ISharePointProject objekt na IVsBuildPropertyStorage objekt a potom IVsBuildPropertyStorage.SetPropertyValue metoda.Následující příklad kódu ukazuje, jak tuto metodu použít k uložení hodnoty vlastnosti projektu do souboru projektu.V tomto příkladu v rámci větší vzorek, naleznete v Jak: Přidat vlastnost SharePoint projekty.
Private sharePointProject As ISharePointProject
Private projectStorage As IVsBuildPropertyStorage
Private Const ProjectFilePropertyId As String = "ContosoCustomProjectFileProperty"
Private Const ProjectFilePropertyDefaultValue As String = "Default"
Public Sub New(ByVal myProject As ISharePointProject)
sharePointProject = myProject
projectStorage = sharePointProject.ProjectService.Convert(Of ISharePointProject, IVsBuildPropertyStorage)(sharePointProject)
End Sub
<DisplayName("Custom Project File Property")> _
<DescriptionAttribute("This property is saved to the .csproj/.vbproj file.")> _
<DefaultValue(ProjectFilePropertyDefaultValue)> _
Public Property CustomProjectFileProperty As String
Get
Dim propertyValue As String = String.Empty
Dim hr As Integer = projectStorage.GetPropertyValue(ProjectFilePropertyId, String.Empty, _
CUInt(_PersistStorageType.PST_PROJECT_FILE), propertyValue)
' Try to get the current value from the project file; if it does not yet exist, return a default value.
If Not ErrorHandler.Succeeded(hr) Or String.IsNullOrEmpty(propertyValue) Then
propertyValue = ProjectFilePropertyDefaultValue
End If
Return propertyValue
End Get
Set(ByVal value As String)
' Do not save the default value.
If value <> ProjectFilePropertyDefaultValue Then
projectStorage.SetPropertyValue(ProjectFilePropertyId, String.Empty, _
CUInt(_PersistStorageType.PST_PROJECT_FILE), value)
End If
End Set
End Property
private ISharePointProject sharePointProject;
private IVsBuildPropertyStorage projectStorage;
private const string ProjectFilePropertyId = "ContosoCustomProjectFileProperty";
private const string ProjectFilePropertyDefaultValue = "Default";
public CustomProjectProperties(ISharePointProject myProject)
{
sharePointProject = myProject;
projectStorage = sharePointProject.ProjectService.Convert<ISharePointProject, IVsBuildPropertyStorage>(sharePointProject);
}
[DisplayName("Custom Project File Property")]
[DescriptionAttribute("This property is saved to the .csproj/.vbproj file.")]
[DefaultValue(ProjectFilePropertyDefaultValue)]
public string CustomProjectFileProperty
{
get
{
string propertyValue;
int hr = projectStorage.GetPropertyValue(ProjectFilePropertyId, string.Empty,
(uint)_PersistStorageType.PST_PROJECT_FILE, out propertyValue);
// Try to get the current value from the project file; if it does not yet exist, return a default value.
if (!ErrorHandler.Succeeded(hr) || String.IsNullOrEmpty(propertyValue))
{
propertyValue = ProjectFilePropertyDefaultValue;
}
return propertyValue;
}
set
{
// Do not save the default value.
if (value != ProjectFilePropertyDefaultValue)
{
projectStorage.SetPropertyValue(ProjectFilePropertyId, string.Empty,
(uint)_PersistStorageType.PST_PROJECT_FILE, value);
}
}
}
Další informace o převodu ISharePointProject objekty a další typy v modelu objektu automatizace aplikace Visual Studio nebo integrace objektový model, viz Převod mezi systémovými typy projektů SharePoint a jinými typy projektů Visual Studio.
Soubor projektu uživateli možnost uložení dat
Chcete-li uložit data do souboru možnost uživatel projektu, použijte ProjectUserFileData vlastnost ISharePointProject objektu.Následující příklad kódu ukazuje, jak lze tuto vlastnost použít soubor projektu uživateli možnost uložení hodnoty vlastnosti projektu.V tomto příkladu v rámci větší vzorek, naleznete v Jak: Přidat vlastnost SharePoint projekty.
Private Const UserFilePropertyId As String = "ContosoCustomUserFileProperty"
Private Const UserFilePropertyDefaultValue As String = "Default"
<DisplayName("Custom Project User File Property")> _
<DescriptionAttribute("This property is saved to the .user file.")> _
<DefaultValue(UserFilePropertyDefaultValue)> _
Public Property CustomUserFileProperty As String
Get
Dim propertyValue As String = String.Empty
' Try to get the current value from the .user file; if it does not yet exist, return a default value.
If Not sharePointProject.ProjectUserFileData.TryGetValue(UserFilePropertyId, propertyValue) Then
propertyValue = UserFilePropertyDefaultValue
End If
Return propertyValue
End Get
Set(ByVal value As String)
' Do not save the default value.
If value <> UserFilePropertyDefaultValue Then
sharePointProject.ProjectUserFileData(UserFilePropertyId) = value
End If
End Set
End Property
private const string UserFilePropertyId = "ContosoCustomUserFileProperty";
private const string UserFilePropertyDefaultValue = "Default";
[DisplayName("Custom Project User File Property")]
[DescriptionAttribute("This property is saved to the .user file.")]
[DefaultValue(UserFilePropertyDefaultValue)]
public string CustomUserFileProperty
{
get
{
string propertyValue = string.Empty;
// Try to get the current value from the .user file; if it does not yet exist, return a default value.
if (!sharePointProject.ProjectUserFileData.TryGetValue(UserFilePropertyId, out propertyValue))
{
propertyValue = UserFilePropertyDefaultValue;
}
return propertyValue;
}
set
{
// Do not save the default value.
if (value != UserFilePropertyDefaultValue)
{
sharePointProject.ProjectUserFileData[UserFilePropertyId] = value;
}
}
}
Viz také
Koncepty
Rozšíření systému projektů služby SharePoint
Přidružení dat vlastní rozšíření nástroje služby SharePoint
Převod mezi systémovými typy projektů SharePoint a jinými typy projektů Visual Studio