Show / Hide Table of Contents

Практическое руководство. Получение свойств объекта системы печати без отражения

Использование отражения для перечисления свойств (и типов этих свойств) в объекте может снизить производительность приложения. System.Printing.IndexedProperties Пространство имен предоставляет средства для получение этой информации с помощью отражения.

Пример

Ниже приведены действия для этого.

  1. Создайте экземпляр типа. В следующем примере тип является PrintQueue тип, который поставляется с Microsoft .NET Framework, но почти идентичный код должен работать для типов, производных от PrintSystemObject.

  2. Создание PrintPropertyDictionary из типа PropertiesCollection. Value Каждой записи в этом словаре является объектом одного из типов, производных от PrintProperty.

  3. Перечисление элементов словаря. Для каждого из них выполните следующие действия.

  4. Приведите значение каждого элемента в PrintProperty и использовать его для создания PrintProperty объекта.

  5. Получить тип Value каждого из PrintProperty объекта.


// Enumerate the properties, and their types, of a queue without using Reflection
LocalPrintServer localPrintServer = new LocalPrintServer();
PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();

PrintPropertyDictionary printQueueProperties = defaultPrintQueue.PropertiesCollection;

Console.WriteLine("These are the properties, and their types, of {0}, a {1}", defaultPrintQueue.Name, defaultPrintQueue.GetType().ToString() +"\n");

foreach (DictionaryEntry entry in printQueueProperties)
{
    PrintProperty property = (PrintProperty)entry.Value;

    if (property.Value != null)
    {
        Console.WriteLine(property.Name + "\t(Type: {0})", property.Value.GetType().ToString());
    }
}
Console.WriteLine("\n\nPress Return to continue...");
Console.ReadLine();

См. также

  • PrintProperty
  • PrintSystemObject
  • System.Printing.IndexedProperties
  • PrintPropertyDictionary
  • LocalPrintServer
  • PrintQueue
  • DictionaryEntry
  • Документы в WPF
  • Общие сведения о печати
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX