Практическое руководство. Получение свойств объекта системы печати без отражения
Обновлен: Ноябрь 2007
Использование Отражение для перечисления свойств (и типов этих свойств) в объекте может уменьшить скорость работы приложения. Пространство имен System.Printing.IndexedProperties позволяет извлечь эту информации с помощью Отражение.
Пример
Ниже приведены шаги, необходимые для выполнения этой операции.
Создайте экземпляр типа. В примере, приведенном ниже, тип является типом PrintQueue, поставляемым вместе с Microsoft .NET Framework. Однако почти идентичный этому код должен работать для типов, производных от PrintSystemObject.
Создайте PrintPropertyDictionary из PropertiesCollection типа. Свойство Value каждой записи в этом словаре является объектом одного из типов, производных от PrintProperty.
Перечислите члены словаря. Для каждого из них выполните следующие действия.
Приведите значение каждого элемента в PrintProperty и используйте его для создания объекта PrintProperty.
Получите тип 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();
См. также
Основные понятия
Документы в Windows Presentation Foundation
Ссылки
System.Printing.IndexedProperties