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


PrintPropertyDictionary Класс

Определение

Представляет коллекцию свойств и значений, связанных с объектом в пространстве имен System.Printing.

public ref class PrintPropertyDictionary : System::Collections::Hashtable, IDisposable
public ref class PrintPropertyDictionary : System::Collections::Hashtable, IDisposable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
[System.Serializable]
public class PrintPropertyDictionary : System.Collections.Hashtable, IDisposable
public class PrintPropertyDictionary : System.Collections.Hashtable, IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public class PrintPropertyDictionary : System.Collections.Hashtable, IDisposable
[<System.Serializable>]
type PrintPropertyDictionary = class
    inherit Hashtable
    interface ISerializable
    interface IDeserializationCallback
    interface IDisposable
type PrintPropertyDictionary = class
    inherit Hashtable
    interface IDisposable
    interface IDeserializationCallback
    interface ISerializable
Public Class PrintPropertyDictionary
Inherits Hashtable
Implements IDisposable
Public Class PrintPropertyDictionary
Inherits Hashtable
Implements IDeserializationCallback, IDisposable, ISerializable
Наследование
PrintPropertyDictionary
Атрибуты
Реализации

Примеры

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

LocalPrintServer myLocalPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue sourcePrintQueue = myLocalPrintServer.DefaultPrintQueue;
PrintPropertyDictionary myPrintProperties = sourcePrintQueue.PropertiesCollection;

// Share the new printer using Remove/Add methods
PrintBooleanProperty shared = new PrintBooleanProperty("IsShared", true);
myPrintProperties.Remove("IsShared");
myPrintProperties.Add("IsShared", shared);

// Give the new printer its share name using SetProperty method
PrintStringProperty theShareName = new PrintStringProperty("ShareName", "\"Son of " + sourcePrintQueue.Name +"\"");
myPrintProperties.SetProperty("ShareName", theShareName);

// Specify the physical location of the new printer using Remove/Add methods
PrintStringProperty theLocation = new PrintStringProperty("Location", "the supply room");
myPrintProperties.Remove("Location");
myPrintProperties.Add("Location", theLocation);

// Specify the port for the new printer
String[] port = new String[] { "COM1:" };

// Install the new printer on the local print server
PrintQueue clonedPrinter = myLocalPrintServer.InstallPrintQueue("My clone of " + sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties);
myLocalPrintServer.Commit();

// Report outcome
Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName);
Console.WriteLine("Press Return to continue ...");
Console.ReadLine();
Dim myLocalPrintServer As New LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer)
Dim sourcePrintQueue As PrintQueue = myLocalPrintServer.DefaultPrintQueue
Dim myPrintProperties As PrintPropertyDictionary = sourcePrintQueue.PropertiesCollection

' Share the new printer using Remove/Add methods
Dim [shared] As New PrintBooleanProperty("IsShared", True)
myPrintProperties.Remove("IsShared")
myPrintProperties.Add("IsShared", [shared])

' Give the new printer its share name using SetProperty method
Dim theShareName As New PrintStringProperty("ShareName", """Son of " & sourcePrintQueue.Name & """")
myPrintProperties.SetProperty("ShareName", theShareName)

' Specify the physical location of the new printer using Remove/Add methods
Dim theLocation As New PrintStringProperty("Location", "the supply room")
myPrintProperties.Remove("Location")
myPrintProperties.Add("Location", theLocation)

' Specify the port for the new printer
Dim port() As String = { "COM1:" }


' Install the new printer on the local print server
Dim clonedPrinter As PrintQueue = myLocalPrintServer.InstallPrintQueue("My clone of " & sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties)
myLocalPrintServer.Commit()

' Report outcome
Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName)
Console.WriteLine("Press Return to continue ...")
Console.ReadLine()

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


// 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();

' Enumerate the properties, and their types, of a queue without using Reflection
Dim localPrintServer As New LocalPrintServer()
Dim defaultPrintQueue As PrintQueue = LocalPrintServer.GetDefaultPrintQueue()

Dim printQueueProperties As PrintPropertyDictionary = defaultPrintQueue.PropertiesCollection

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

For Each entry As DictionaryEntry In printQueueProperties
    Dim [property] As PrintProperty = CType(entry.Value, PrintProperty)

    If [property].Value IsNot Nothing Then
        Console.WriteLine([property].Name & vbTab & "(Type: {0})", [property].Value.GetType().ToString())
    End If
Next entry
Console.WriteLine(vbLf & vbLf & "Press Return to continue...")
Console.ReadLine()

Комментарии

Коллекция имеет вид Hashtable словаря. Свойство Value каждого из них DictionaryEntry в коллекции является экземпляром класса, производного от PrintProperty.

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

PrintPropertyDictionary()

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

PrintPropertyDictionary(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса PrintPropertyDictionary и предоставляет его с указанными объектами с SerializationInfo и StreamingContext.

Свойства

comparer
Устаревшие..
Устаревшие..

Получает или задает интерфейс IComparer для использования применительно к коллекции Hashtable.

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

Возвращает число пар "ключ-значение", содержащихся в словаре Hashtable.

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

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

(Унаследовано от Hashtable)
hcp
Устаревшие..
Устаревшие..

Получает или задает объект, который может распределять хэш-коды.

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

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

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

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

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

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

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

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

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

Получает коллекцию ICollection, содержащую ключи из коллекции Hashtable.

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

Получает объект, с помощью которого можно синхронизировать доступ к коллекции Hashtable.

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

Возвращает интерфейс ICollection, содержащий значения из Hashtable.

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

Методы

Add(Object, Object)

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

(Унаследовано от Hashtable)
Add(PrintProperty)

Добавляет в словарь указанный объект класса, который является производным свойства PrintProperty.

Clear()

Удаляет из коллекции Hashtable все элементы.

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

Создает неполную копию Hashtable.

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

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

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

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

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

Определяет, содержит ли коллекция Hashtable указанное значение.

(Унаследовано от Hashtable)
CopyTo(Array, Int32)

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

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

Освобождает все ресурсы, используемые PrintPropertyDictionary.

Dispose(Boolean)

Освобождает неуправляемые (а при необходимости и управляемые) ресурсы, используемые объектом PrintPropertyDictionary.

Equals(Object)

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

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

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

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

Возвращает хэш-код указанного ключа.

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

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

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Заполняет объект SerializationInfo данными, которые необходимы для сериализации словаря PrintPropertyDictionary.

GetProperty(String)

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

GetType()

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

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

Сравнивает указанный объект класса Object с указанным ключом, который содержится в коллекции Hashtable.

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

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

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

Реализует интерфейс ISerializable и вызывает событие десериализации при завершении десериализации.

Remove(Object)

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

(Унаследовано от Hashtable)
SetProperty(String, PrintProperty)

Задает значение определенного атрибута объекту класса, который является производным из свойства PrintProperty.

ToString()

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

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

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

IEnumerable.GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.

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

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

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

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

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