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

注解

集合采用字典的形式 HashtableValue集合中每个 DictionaryEntry 的 属性都是派生自 PrintProperty的类的实例。

构造函数

PrintPropertyDictionary()

初始化 PrintPropertyDictionary 类的新实例。

PrintPropertyDictionary(SerializationInfo, StreamingContext)

初始化 PrintPropertyDictionary 类的一个新实例,并为其提供指定的 SerializationInfoStreamingContext

属性

comparer
已过时.
已过时.

获取或设置要用于 IComparerHashtable

(继承自 Hashtable)
Count

获取包含在 Hashtable 中的键/值对的数目。

(继承自 Hashtable)
EqualityComparer

获取要用于 IEqualityComparerHashtable

(继承自 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()

返回循环访问 IDictionaryEnumeratorHashtable

(继承自 Hashtable)
GetHash(Object)

返回指定键的哈希代码。

(继承自 Hashtable)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetObjectData(SerializationInfo, StreamingContext)

用序列化 SerializationInfo 所需的数据来填充 PrintPropertyDictionary

GetProperty(String)

获取表示特定属性的对象(属于从 PrintProperty 派生的类)。

GetType()

获取当前实例的 Type

(继承自 Object)
KeyEquals(Object, Object)

将特定 ObjectHashtable 中的特定键进行比较。

(继承自 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

适用于