Método TypeDescriptorCollection.Create
Cria um objeto TypeDescriptor T:Microsoft.Office.Server.ApplicationRegistry.Administration.TypeDescriptor.
Espaço para nome Microsoft.Office.Server.ApplicationRegistry.Administration
Conjunto de Módulos (Assembly) Microsoft.SharePoint.Portal (em microsoft.sharepoint.portal.dll)
A sintaxe
Public Function Create ( _
name As String, _
isCached As Boolean, _
typeName As String, _
identifier As Identifier, _
filterDescriptor As FilterDescriptor, _
isCollection As Boolean _
) As TypeDescriptor
Dim instance As TypeDescriptorCollection
Dim name As String
Dim isCached As Boolean
Dim typeName As String
Dim identifier As Identifier
Dim filterDescriptor As FilterDescriptor
Dim isCollection As Boolean
Dim returnValue As TypeDescriptor
returnValue = instance.Create(name, isCached, typeName, identifier, filterDescriptor, isCollection)
public TypeDescriptor Create (
string name,
bool isCached,
string typeName,
Identifier identifier,
FilterDescriptor filterDescriptor,
bool isCollection
)
Parâmetros
- name
O nome do objeto TypeDescriptor TypeDescriptor.
- isCached
true se armazenados em cache; caso contrário, false.
- typeName
O TypeName do objeto TypeDescriptor TypeDescriptor.
- identifier
Se o objeto TypeDescriptor TypeDescriptor representa um identificador, o objeto Identifier identificador, caso contrário NULL null.
- filterDescriptor
Se o objeto TypeDescriptor TypeDescriptor é associado com um descritor filtro e, em seguida, o objeto FilterDescriptor FilterDescriptor, caso contrário NULL.
- isCollection
True se o objeto TypeDescriptor TypeDescriptor representa uma coleção, caso contrário false.
Retornar valor
Um objeto TypeDescriptor TypeDescriptor.
Exemplo
O seguinte exemplo de código mostra como criar um método, completo com instâncias método, filtro descritores, valores usar como padrão e descritores tipo, para a entidade ProductModel no banco de dados de AdventureWorks2000.
Prerequisites
Certifique-se que um provedor de serviços compartilhados já é criado.
Criar uma instância LobSystem LobSystem e definir parâmetros conexão conforme mostrado na Como a: Criar um LobSystem com o modelo de objeto de administração.
Criar a entidade ProductModel como mostrado no Como a: criar uma entidade com o modelo de objeto de administração
Substituir a constante valor EnterYourSSPNameHere na codificar com o nome do seu Shared Resource Provider.
Project References
Adicione o seguinte referências do projeto no seu projeto código do aplicativo console antes execução neste exemplo:
Microsoft.SharePoint
Microsoft.SharePoint.Portal
Microsoft.Office.Server
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;
namespace Microsoft.SDK.SharePointServer.Samples
{
class GetStartedAndCreateSystem
{
const string yourSSPName ="EnterYourSSPNameHere";
static void Main(string[] args)
{
SetupBDC();
CreateFinderMethod();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void CreateFinderMethod()
{
LobSystemInstance mySysInstance = null;
LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
foreach (LobSystemInstance sysInstance in sysInsCollection)
{
if (sysInstance.Name == "AdventureWorksSampleFromCode")
{
mySysInstance = sysInstance;
break;
}
}
EntityCollection entityColl = mySysInstance.LobSystem.Entities;
foreach (Entity entity in entityColl)
{
if (entity.Name == "ProductModel")
{
Method meth = entity.Methods.Create("GetProductModels", true, true);
meth.Properties.Add("RdbCommandText", "SELECT ProductModelID, Name, CatalogDescription FROM ProductModel WHERE Name LIKE @Name");
meth.Properties.Add("RdbCommandType", System.Data.CommandType.Text);
FilterDescriptor fd = meth.FilterDescriptors.Create("Name", true, "Microsoft.Office.Server.ApplicationRegistry.Runtime.WildcardFilter");
Parameter p1 = meth.Parameters.Create("@Name", true, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.DirectionType.In, "Microsoft.Office.Server.ApplicationRegistry.Infrastructure.DotNetTypeReflector");
TypeDescriptor td1 = p1.CreateRootTypeDescriptor("Name", true, "System.String", null, fd, false);
Parameter p2 = meth.Parameters.Create("ProductModels", true, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.DirectionType.Return, "Microsoft.Office.Server.ApplicationRegistry.Infrastructure.DotNetTypeReflector");
IList<Identifier> ids = new List<Identifier>(entity.Identifiers);
Identifier id = ids[0];
TypeDescriptor td2 = p2.CreateRootTypeDescriptor("ProductModelDataReader", true, "System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", null, null, true);
TypeDescriptor td21 = td2.ChildTypeDescriptors.Create("ProductModelDataRecord", true, "System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", null, null, false);
TypeDescriptor td210 = td21.ChildTypeDescriptors.Create("ProductModelID", true, "System.Int32", id, null, false);
TypeDescriptor td211 = td21.ChildTypeDescriptors.Create("Name", true, "System.String", null, null, false);
TypeDescriptor td212 = td21.ChildTypeDescriptors.Create("CatalogDescription", true, "System.String", null, null, false);
MethodInstance methInst1 = meth.MethodInstances.Create("ProductModelFinder", true, td2, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.MethodInstanceType.Finder);
MethodInstance methInst2 = meth.MethodInstances.Create("ProductModelSpecificFinder", true, td2, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.MethodInstanceType.SpecificFinder);
IList<MethodInstance> methInstCollection = new List<MethodInstance>(entity.MethodInstances);
td1.SetDefaultValue(methInstCollection[0].Id, "%");
td1.SetDefaultValue(methInstCollection[1].Id, "%");
Console.WriteLine("Created the finder method successfully.");
break;
}
}
}
}
}
Consulte também
Referência
TypeDescriptorCollection De classe
TypeDescriptorCollection Membros
Microsoft.Office.Server.ApplicationRegistry.Administration De espaço para nome