Поделиться через


DiscoveryExceptionDictionary Класс

Определение

Собирает исключения, возникшие во время обнаружения веб-служб XML. Этот класс не наследуется.

public ref class DiscoveryExceptionDictionary sealed : System::Collections::DictionaryBase
public sealed class DiscoveryExceptionDictionary : System.Collections.DictionaryBase
type DiscoveryExceptionDictionary = class
    inherit DictionaryBase
Public NotInheritable Class DiscoveryExceptionDictionary
Inherits DictionaryBase
Наследование
DiscoveryExceptionDictionary

Примеры

#using <System.Xml.dll>
#using <System.Web.Services.dll>
#using <System.dll>

using namespace System;
using namespace System::Web::Services::Discovery;
using namespace System::Xml;
using namespace System::Collections;
using namespace System::Runtime::Remoting;
using namespace System::Net;

int main()
{
   String^ myDiscoFile = "http://localhost/MathService_cs.disco";
   String^ myUrlKey = "http://localhost/MathService_cs.asmx?wsdl";
   DiscoveryClientProtocol^ myDiscoveryClientProtocol1 = gcnew DiscoveryClientProtocol;
   DiscoveryDocument^ myDiscoveryDocument = myDiscoveryClientProtocol1->Discover( myDiscoFile );
   IEnumerator^ myEnumerator = myDiscoveryDocument->References->GetEnumerator();
   while ( myEnumerator->MoveNext() )
   {
      ContractReference^ myContractReference = dynamic_cast<ContractReference^>(myEnumerator->Current);
      DiscoveryClientProtocol^ myDiscoveryClientProtocol2 = myContractReference->ClientProtocol;
      myDiscoveryClientProtocol2->ResolveAll();
      
      DiscoveryExceptionDictionary^ myExceptionDictionary = myDiscoveryClientProtocol2->Errors;
      if ( myExceptionDictionary->Contains( myUrlKey ))
      {
         Console::WriteLine( "'myExceptionDictionary' contains a discovery exception for the key '{0}'", myUrlKey );
      }
      else
      {
         Console::WriteLine( "'myExceptionDictionary' does not contain a discovery exception for the key '{0}'", myUrlKey );
      }
      if ( myExceptionDictionary->Contains( myUrlKey ) )
      {
         Console::WriteLine( "System generated exceptions." );
         
         Exception^ myException = myExceptionDictionary[ myUrlKey ];
         Console::WriteLine( " Source : {0}", myException->Source );
         Console::WriteLine( " Exception : {0}", myException->Message );

         Console::WriteLine();
         
         // Remove the discovery exception.for the key 'myUrlKey'.
         myExceptionDictionary->Remove( myUrlKey );

         DiscoveryExceptionDictionary^ myNewExceptionDictionary = gcnew DiscoveryExceptionDictionary;
         
         // Add an exception with the custom error message.
         Exception^ myNewException = gcnew Exception( "The requested service is not available." );
         myNewExceptionDictionary->Add( myUrlKey, myNewException );
         myExceptionDictionary = myNewExceptionDictionary;

         Console::WriteLine( "Added exceptions." );
         
         array<Object^>^myArray = gcnew array<Object^>(myExceptionDictionary->Count);
         myExceptionDictionary->Keys->CopyTo( (Array^)myArray, 0 );
         Console::WriteLine( " Keys are :" );

         for each(Object^ myObj in myArray)
         {
            Console::WriteLine(" " + myObj->ToString());
         }

         Console::WriteLine();
         
         array<Object^>^myCollectionArray = gcnew array<Object^>(myExceptionDictionary->Count);
         myExceptionDictionary->Values->CopyTo( (Array^)myCollectionArray, 0 );
         Console::WriteLine( " Values are :" );
         for each(Object^ myObj in myCollectionArray)
         {
            Console::WriteLine(" " + myObj->ToString());
         }
      }
   }
}
using System;
using System.Web.Services.Discovery;
using System.Xml;
using System.Collections;
using System.Runtime.Remoting;
using System.Net;

public class MySample
{
   static void Main()
   {
      string myDiscoFile = "http://localhost/MathService_cs.disco";
      string myUrlKey = "http://localhost/MathService_cs.asmx?wsdl";
      DiscoveryClientProtocol myDiscoveryClientProtocol1 =
                                            new DiscoveryClientProtocol();
      DiscoveryDocument myDiscoveryDocument =
                         myDiscoveryClientProtocol1.Discover(myDiscoFile);
      IEnumerator myEnumerator =
                           myDiscoveryDocument.References.GetEnumerator();
      while ( myEnumerator.MoveNext() )
      {
         ContractReference myContractReference =
                                  (ContractReference)myEnumerator.Current;
         DiscoveryClientProtocol myDiscoveryClientProtocol2 =
                                       myContractReference.ClientProtocol;
         myDiscoveryClientProtocol2.ResolveAll();
         DiscoveryExceptionDictionary myExceptionDictionary
                                      = myDiscoveryClientProtocol2.Errors;
         if ( myExceptionDictionary.Contains(myUrlKey))
         {
            Console.WriteLine("'myExceptionDictionary' contains " +
                      " a discovery exception for the key '" + myUrlKey + "'");
         }
         else
         {
            Console.WriteLine("'myExceptionDictionary' does not contain" +
                      " a discovery exception for the key '" + myUrlKey + "'");
         }
         if (myExceptionDictionary.Contains(myUrlKey))
         {
            Console.WriteLine("System generated exceptions.");

            Exception myException = myExceptionDictionary[myUrlKey];
            Console.WriteLine(" Source : " + myException.Source);
            Console.WriteLine(" Exception : " + myException.Message);

            Console.WriteLine();

            // Remove the discovery exception.for the key 'myUrlKey'.
            myExceptionDictionary.Remove(myUrlKey);

            DiscoveryExceptionDictionary myNewExceptionDictionary =
                                       new DiscoveryExceptionDictionary();
            // Add an exception with the custom error message.
            Exception myNewException =
                 new Exception("The requested service is not available.");
            myNewExceptionDictionary.Add(myUrlKey, myNewException);
            myExceptionDictionary = myNewExceptionDictionary;

            Console.WriteLine("Added exceptions.");

            object[] myArray = new object[myExceptionDictionary.Count];
            myExceptionDictionary.Keys.CopyTo((Array)myArray,0);
            Console.WriteLine(" Keys are :");
            foreach(object myObj in myArray)
            {
               Console.WriteLine(" " + myObj.ToString());
            }

            Console.WriteLine();

            object[] myCollectionArray = new object[myExceptionDictionary.Count];
            myExceptionDictionary.Values.CopyTo((Array)myCollectionArray,0);
            Console.WriteLine(" Values are :");
            foreach(object myObj in myCollectionArray)
            {
               Console.WriteLine(" " + myObj.ToString());
            }
         }
      }
   }
}
Imports System.Web.Services.Discovery
Imports System.Xml
Imports System.Collections
Imports System.Runtime.Remoting
Imports System.Net

Public Class MySample
   
   Shared Sub Main()
      Dim myDiscoFile As String = "http://localhost/MathService_vb.disco"
      Dim myUrlKey As String = "http://localhost/MathService_vb.asmx?wsdl"
      Dim myDiscoveryClientProtocol1 As New DiscoveryClientProtocol()
      Dim myDiscoveryDocument As DiscoveryDocument = myDiscoveryClientProtocol1.Discover(myDiscoFile)
      Dim myEnumerator As IEnumerator = myDiscoveryDocument.References.GetEnumerator()
      While myEnumerator.MoveNext()
         Dim myContractReference As ContractReference = CType(myEnumerator.Current, ContractReference)
         Dim myDiscoveryClientProtocol2 As DiscoveryClientProtocol = myContractReference.ClientProtocol
         myDiscoveryClientProtocol2.ResolveAll()
         Dim myExceptionDictionary As DiscoveryExceptionDictionary = myDiscoveryClientProtocol2.Errors
         If myExceptionDictionary.Contains(myUrlKey) = True Then
            Console.WriteLine("'myExceptionDictionary' contains " + _
                 "a discovery exception for the key '" + myUrlKey + "'")
         Else
            Console.WriteLine("'myExceptionDictionary' does not contain" + _
                 " a discovery exception for the key '" + myUrlKey + "'")
         End If
         If myExceptionDictionary.Contains(myUrlKey) = True Then
            Console.WriteLine("System generated exceptions.")
            
            Dim myException As Exception = myExceptionDictionary(myUrlKey)
            Console.WriteLine(" Source : " + myException.Source)
            Console.WriteLine(" Exception : " + myException.Message)
            Console.WriteLine()
            
            ' Remove the discovery exception.for the key 'myUrlKey'.
            myExceptionDictionary.Remove(myUrlKey)
            Dim myNewExceptionDictionary As New DiscoveryExceptionDictionary()
            ' Add an exception with the custom error message.
            Dim myNewException As New Exception("The requested service is not available.")
            myNewExceptionDictionary.Add(myUrlKey, myNewException)
            myExceptionDictionary = myNewExceptionDictionary
            Console.WriteLine("Added exceptions.")
            
            Dim myArray(myExceptionDictionary.Count -1 ) As Object
            myExceptionDictionary.Keys.CopyTo(CType(myArray, Array), 0)
            Console.WriteLine(" Keys are :")
            Dim myObj As Object
            For Each myObj In  myArray
               Console.WriteLine(" " + myObj.ToString())
            Next myObj
            Console.WriteLine()
            
            Dim myCollectionArray(myExceptionDictionary.Count -1 ) As Object
            myExceptionDictionary.Values.CopyTo(CType(myCollectionArray, Array), 0)
            Console.WriteLine(" Values are :")
            For Each myObj In  myCollectionArray
               Console.WriteLine(" " + myObj.ToString())
            Next myObj
         End If 
      End While
   End Sub
End Class

Комментарии

Свойство Errors имеет DiscoveryClientProtocol тип DiscoveryExceptionDictionary.

Конструкторы

DiscoveryExceptionDictionary()

Инициализирует новый экземпляр класса DiscoveryExceptionDictionary.

Свойства

Count

Возвращает количество элементов, содержащихся в экземпляре DictionaryBase.

(Унаследовано от DictionaryBase)
Dictionary

Получает список элементов, содержащихся в экземпляре DictionaryBase.

(Унаследовано от DictionaryBase)
InnerHashtable

Получает список элементов, содержащихся в экземпляре DictionaryBase.

(Унаследовано от DictionaryBase)
Item[String]

Возвращает или задает исключение класса Exception, происходящее при обнаружении указанного URL-адреса из DiscoveryExceptionDictionary.

Keys

Получает объект ICollection со всеми ключами в DiscoveryExceptionDictionary.

Values

Получает объект ICollection, содержащий все значения в DiscoveryExceptionDictionary.

Методы

Add(String, Exception)

Добавляет Exception с ключом url к DiscoveryExceptionDictionary.

Clear()

Удаляет содержимое экземпляра DictionaryBase.

(Унаследовано от DictionaryBase)
Contains(String)

Определяет, содержит ли DiscoveryExceptionDictionary класс Exception с указанным URL-адресом.

CopyTo(Array, Int32)

Копирует элементы класса DictionaryBase в одномерный массив класса Array с указанного индекса.

(Унаследовано от DictionaryBase)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель IDictionaryEnumerator, осуществляющий перебор элементов экземпляра класса DictionaryBase.

(Унаследовано от DictionaryBase)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
OnClear()

Осуществляет дополнительные пользовательские действия перед удалением содержимого экземпляра класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnClearComplete()

Осуществляет дополнительные пользовательские действия после удаления содержимого экземпляра класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnGet(Object, Object)

Получает элемент с указанными ключом и значением из экземпляра класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnInsert(Object, Object)

Выполняет дополнительные пользовательские действия перед вставкой нового элемента в экземпляр класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnInsertComplete(Object, Object)

Выполняет дополнительные пользовательские действия после вставки нового элемента в экземпляр класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnRemove(Object, Object)

Осуществляет дополнительные пользовательские действия перед удалением элемента из экземпляра класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnRemoveComplete(Object, Object)

Осуществляет дополнительные пользовательские действия после удаления элемента из экземпляра класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnSet(Object, Object, Object)

Выполняет дополнительные пользовательские действия перед заданием значения в экземпляре класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnSetComplete(Object, Object, Object)

Выполняет дополнительные пользовательские действия после задания значения в экземпляре класса DictionaryBase.

(Унаследовано от DictionaryBase)
OnValidate(Object, Object)

Выполняет дополнительные пользовательские операции при проверке элемента с указанными ключом и значением.

(Унаследовано от DictionaryBase)
Remove(String)

Удаляет Exception с указанным URL-адресом из DiscoveryExceptionDictionary.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.IsSynchronized

Возвращает значение, указывающее на то, является ли доступ к объекту DictionaryBase синхронизированным (потокобезопасным).

(Унаследовано от DictionaryBase)
ICollection.SyncRoot

Получает объект, который позволяет синхронизировать доступ к объекту DictionaryBase.

(Унаследовано от DictionaryBase)
IDictionary.Add(Object, Object)

Добавляет элемент с указанными ключом и значением в словарь DictionaryBase.

(Унаследовано от DictionaryBase)
IDictionary.Contains(Object)

Определяет, содержит ли объект DictionaryBase указанный ключ.

(Унаследовано от DictionaryBase)
IDictionary.IsFixedSize

Получает значение, показывающее, имеет ли объект DictionaryBase фиксированный размер.

(Унаследовано от DictionaryBase)
IDictionary.IsReadOnly

Возвращает значение, указывающее, является ли объект DictionaryBase доступным только для чтения.

(Унаследовано от DictionaryBase)
IDictionary.Item[Object]

Возвращает или задает значение, связанное с указанным ключом.

(Унаследовано от DictionaryBase)
IDictionary.Keys

Получает объект ICollection, содержащий ключи из объекта DictionaryBase.

(Унаследовано от DictionaryBase)
IDictionary.Remove(Object)

Удаляет элемент с указанным ключом из объекта DictionaryBase.

(Унаследовано от DictionaryBase)
IDictionary.Values

Получает объект ICollection, содержащий значения из объекта DictionaryBase.

(Унаследовано от DictionaryBase)
IEnumerable.GetEnumerator()

Возвращает объект IEnumerator, осуществляющий перебор DictionaryBase.

(Унаследовано от DictionaryBase)

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Применяется к

См. также раздел