FindItemType Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
O FindItemType classe representa uma consulta para localizar itens em uma caixa de correio.
public ref class FindItemType : ExchangeWebServices::BaseRequestType
public class FindItemType : ExchangeWebServices.BaseRequestType
Public Class FindItemType
Inherits BaseRequestType
- Herança
Exemplos
o exemplo de código a seguir mostra uma consulta de item de localizar que retorna os seguintes resultados:
- Um resultado de consulta indexados que começa no início do conjunto de resultados e retorna a no máximo 10 entradas do conjunto de resultados.
- Uma pesquisa agrupada que faz o seguinte:
- Todas as propriedades que são definidas para o AllProperties da forma, além das propriedades IsMeeting e importância. Observe que a forma de AllProperties é diferente em uma operação FindItem relação em uma operação GetItem.
- Itens encontrados na pasta Calendário padrão.
- Somente os itens que tenham uma hora de início após a hora atual.
- Itens classificados pela propriedade Subject.
- Itens encontrados apenas no nível superior da pasta pesquisada.
static void FindItem()
{
// Create the service binding.
ExchangeServiceBinding esb = new ExchangeServiceBinding();
esb.Credentials = new NetworkCredential("username", "password", "domain");
esb.Url = @"https://ExchangeServer/EWS/Exchange.asmx";
// Form the FindItem request.
FindItemType <span class="label">findItemRequest</span> = new <span class="label">FindItemType</span>();
// Define the paging scheme for the result set.
IndexedPageViewType ipvt = new IndexedPageViewType();
ipvt.BasePoint = IndexBasePointType.Beginning;
ipvt.MaxEntriesReturned = 10;
ipvt.MaxEntriesReturnedSpecified = true;
ipvt.Offset = 0;
// Add the paging scheme to the request.
<span class="label">findItemRequest</span>.Item = ipvt;
// Define the grouping scheme for the result set.
GroupByType group = new GroupByType();
// Define the property that is used to determine the order of groups of items in a group.
AggregateOnType aggregate = new AggregateOnType();
PathToUnindexedFieldType subject = new PathToUnindexedFieldType();
subject.FieldURI = UnindexedFieldURIType.itemSubject;
aggregate.Item = subject;
aggregate.Aggregate = AggregateType.Minimum;
group.AggregateOn = aggregate;
// Define the property that is used to group items.
PathToUnindexedFieldType importance = new PathToUnindexedFieldType();
importance.FieldURI = UnindexedFieldURIType.itemImportance;
group.Item = importance;
// Define how the groups are ordered in the response.
group.Order = SortDirectionType.Descending;
// Add the grouping scheme to the request.
<span class="label">findItemRequest</span>.Item1 = group;
// Define the item properties that are returned in the response.
ItemResponseShapeType itemProperties = new ItemResponseShapeType();
// Use the Default shape for the response.
itemProperties.BaseShape = DefaultShapeNamesType.Default;
// Add more properties to the request.
PathToUnindexedFieldType addIsMeeting = new PathToUnindexedFieldType();
PathToUnindexedFieldType addImportance = new PathToUnindexedFieldType();
addIsMeeting.FieldURI = UnindexedFieldURIType.calendarIsMeeting;
addImportance.FieldURI = UnindexedFieldURIType.itemImportance;
itemProperties.AdditionalProperties = new PathToUnindexedFieldType[2];
itemProperties.AdditionalProperties[0] = addIsMeeting;
itemProperties.AdditionalProperties[1] = addImportance;
// Add the properties shape to the request.
<span class="label">findItemRequest</span>.ItemShape = itemProperties;
// Identify which folders to search.
DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[1];
folderIDArray[0] = new DistinguishedFolderIdType();
folderIDArray[0].Id = DistinguishedFolderIdNameType.calendar;
// Add folders to the request.
<span class="label">findItemRequest</span>.ParentFolderIds = folderIDArray;
// Create a restriction for the result set.
RestrictionType restriction = new RestrictionType();
PathToUnindexedFieldType pteft = new PathToUnindexedFieldType();
pteft.FieldURI = UnindexedFieldURIType.calendarStart;
FieldURIOrConstantType fieldURIORConstant = new FieldURIOrConstantType();
fieldURIORConstant.Item = new ConstantValueType();
(fieldURIORConstant.Item as ConstantValueType).Value = DateTime.Now.ToString();
IsGreaterThanType isGreaterThan = new IsGreaterThanType();
isGreaterThan.Item = pteft;
isGreaterThan.FieldURIOrConstant = fieldURIORConstant;
restriction.Item = isGreaterThan;
<span class="label">findItemRequest</span>.Restriction = restriction;
// Define the sort order of items.
FieldOrderType[] fieldsOrder = new FieldOrderType[1];
fieldsOrder[0] = new FieldOrderType();
PathToUnindexedFieldType subjectOrder = new PathToUnindexedFieldType();
subjectOrder.FieldURI = UnindexedFieldURIType.itemSubject;
fieldsOrder[0].Item = subjectOrder;
fieldsOrder[0].Order = SortDirectionType.Ascending;
<span class="label">findItemRequest</span>.SortOrder = fieldsOrder;
// Define the traversal type.
<span class="label">findItemRequest</span>.Traversal = ItemQueryTraversalType.Shallow;
try
{
// Send the FindItem request and get the response.
FindItemResponseType findItemResponse = esb.FindItem(<span class="label">findItemRequest</span>);
// Access the response message.
ArrayOfResponseMessagesType responseMessages = findItemResponse.ResponseMessages;
ResponseMessageType responseMessage = responseMessages.Items[0];
if (responseMessage is FindItemResponseMessageType)
{
FindItemResponseMessageType firmt = (responseMessage as FindItemResponseMessageType);
FindItemParentType fipt = firmt.RootFolder;
object obj = fipt.Item;
// Determine whether the FindItem response contains grouped items.
if (obj is ArrayOfGroupedItemsType)
{
ArrayOfGroupedItemsType groupedItems = (obj as ArrayOfGroupedItemsType);
//TODO: Write code to handle grouped items.
}
// FindItem contains an array of items.
else if (obj is ArrayOfRealItemsType)
{
ArrayOfRealItemsType items = (obj as ArrayOfRealItemsType);
//TODO: Write code to handle items.
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
Comentários
O FindItemType classe fornece várias opções para consultar uma caixa de correio. Embora a consulta FindItem é limitada ao superficiais e excluída pesquisas de um conjunto de pastas, muitas opções estão disponíveis para a criação de expressões de pesquisa complexas e modos de exibição do conjunto de resultados de pesquisa. O FindItemType classe contém um conjunto de propriedades que são usadas para definir os parâmetros da pesquisa. A tabela a seguir lista as propriedades que descrevem os parâmetros diferentes que são usados para construir consultas.
Propriedades que são usadas para construir consultas
| Item |
| Item1 |
| ItemShape |
| ParentFolderIds |
| Restriction |
| SortOrder |
| Traversal |
FindItem a consulta deve ser usada para consultas que alteração com frequência e que não exigem um percurso profundo da estrutura da pasta. Se uma pesquisa específica é realizada regularmente, talvez seja mais adequado criar uma pasta de pesquisa para a pesquisa. Observe que as pastas de pesquisa também podem executar traversais profundidade da estrutura da pasta.
Importante: pastas de pesquisa execute do banco de dados do Exchange Server 2007 e, portanto, afetam o desempenho do computador que está executando o Exchange server, enquanto FindItem consultas só afetam o desempenho quando as consultas são recebidas pela Servidor do Exchange.
FindItem a consulta irá fornecer muitas das informações que precisa de um aplicativo cliente. Basicamente, ele retornará um resumo de um item. FindItem retorna apenas os primeiros 512 bytes de qualquer propriedade transmissíveis. Para Unicode, ele retorna os primeiros 255 caracteres, usando uma cadeia de caracteres Unicode terminada em nulo.
Observação: FindItem não retorna um corpo da mensagem, anexos ou listas de destinatário.
Uso de
GetItemType para obter os detalhes de itens específicos. GetItem retorna mais propriedades do que FindItem. Se mais informações forem necessárias, um aplicativo cliente deve realizar uma chamada FindItem e use os identificadores de item em uma chamada de GetItem para obter as propriedades que não estão disponíveis na chamada FindItem.
a tabela a seguir lista as propriedades que são retornadas em ambas a FindItem e chama GetItem.
Propriedades que são retornadas em FindItem e GetItem chamadas
| ConversationIndex | ConversationTopic | cultura |
| DateTimeCreated | DateTimeReceived | DateTimeSent |
| DisplayCc | DisplayTo | De |
| HasAttachments | Prioridade | InReplyTo |
| InternetMessageId | IsDeliveryReceiptRequested | IsDraft |
| IsFromMe | foi lido | IsReadReceiptRequested |
| IsResend | IsResponseRequested | IsSubmitted |
| IsUnmodified | ItemClass | ItemId |
| ParentFolderId | Referências | ReminderDueBy |
| ReminderIsSet | ReminderMinutesBeforeStart | remetente |
| sensibilidade | Tamanho | assunto |
Observação: Embora a propriedade do remetente é retornada no FindItem e GetItem chamadas, apenas o DisplayName (string) é retornado na chamada FindItem. DisplayName (string), EmailAddress (NonEmptyStringType) e RoutingType (EmailAddress) são retornados pela chamada GetItem.
o Item e Item1 propriedades são criadas pelo processo de geração de proxy e como ele lida com elementos de escolha de esquema XML. O Item propriedade estiver definida com um objeto que estende o BasePagingType classe. Essa propriedade descreve qual tipo de modo de exibição será retornado na resposta. O Item1 propriedade estiver definida com um objeto que estende o BaseGroupByType classe. Essa propriedade descreve como a resposta agrupará itens no conjunto de resultados. Para obter mais informações sobre essas propriedades, consulte XML esquema escolha elemento Proxy artefatos.
Construtores
| FindItemType() |
O FindItemType construtor inicializa uma nova instância do FindItemType classe. |
Propriedades
| Item |
O Item propriedade obtém ou define o tipo de paginação que descreve como o conjunto de resultados de consulta é paginado na resposta. Essa propriedade obtém ou define um um IndexedPageViewType, FractionalPageViewType, CalendarViewType, ou ContactsViewType objeto. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação. |
| Item1 |
O Item1 propriedade obtém ou define o tipo de agrupamento que descreve como o conjunto de resultados de consulta está agrupado na resposta. Essa propriedade obtém ou define um um GroupByType ou DistinguishedGroupByType objeto. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação. |
| ItemShape |
O ItemShape propriedade obtém ou define a forma do conjunto de consulta. Essa propriedade é obrigatória. Esta é uma propriedade de leitura/gravação. |
| ParentFolderIds |
O ParentFolderIds propriedade obtém ou define as pastas que a operação FindItem pesquisa. Essa propriedade é obrigatória. Esta é uma propriedade de leitura/gravação. |
| QueryString | |
| Restriction |
O Restriction propriedade obtém ou define os parâmetros de pesquisa que definem uma consulta de item. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação. |
| SortOrder |
O SortOrder propriedade obtém ou define a ordem de classificação de itens retornados no conjunto de resultados. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação. |
| Traversal |
O Traversal propriedade obtém ou define o esquema de passagem que é usado para pesquisar itens nas pastas. Essa propriedade é obrigatória. Esta é uma propriedade de leitura/gravação. |