1 //------------------------------------------------------------------------------
2 // <copyright file="XsltArgumentList.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 //------------------------------------------------------------------------------
8 using System
.Collections
;
9 using System
.Security
.Permissions
;
11 namespace System
.Xml
.Xsl
{
13 public abstract class XsltMessageEncounteredEventArgs
: EventArgs
{
14 public abstract string Message { get; }
17 public delegate void XsltMessageEncounteredEventHandler(object sender
, XsltMessageEncounteredEventArgs e
);
19 public class XsltArgumentList
{
20 private Hashtable parameters
= new Hashtable();
21 private Hashtable extensions
= new Hashtable();
23 // Used for reporting xsl:message's during execution
24 internal XsltMessageEncounteredEventHandler xsltMessageEncountered
= null;
26 public XsltArgumentList() {}
28 public object GetParam(string name
, string namespaceUri
) {
29 return this.parameters
[new XmlQualifiedName(name
, namespaceUri
)];
32 public object GetExtensionObject(string namespaceUri
) {
33 return this.extensions
[namespaceUri
];
36 public void AddParam(string name
, string namespaceUri
, object parameter
) {
37 CheckArgumentNull(name
, "name" );
38 CheckArgumentNull(namespaceUri
, "namespaceUri");
39 CheckArgumentNull(parameter
, "parameter" );
41 XmlQualifiedName qname
= new XmlQualifiedName(name
, namespaceUri
);
43 this.parameters
.Add(qname
, parameter
);
46 public void AddExtensionObject(string namespaceUri
, object extension
) {
47 CheckArgumentNull(namespaceUri
, "namespaceUri");
48 CheckArgumentNull(extension
, "extension" );
49 this.extensions
.Add(namespaceUri
, extension
);
52 public object RemoveParam(string name
, string namespaceUri
) {
53 XmlQualifiedName qname
= new XmlQualifiedName(name
, namespaceUri
);
54 object parameter
= this.parameters
[qname
];
55 this.parameters
.Remove(qname
);
59 public object RemoveExtensionObject(string namespaceUri
) {
60 object extension
= this.extensions
[namespaceUri
];
61 this.extensions
.Remove(namespaceUri
);
65 public event XsltMessageEncounteredEventHandler XsltMessageEncountered
{
67 xsltMessageEncountered
+= value;
70 xsltMessageEncountered
-= value;
75 this.parameters
.Clear();
76 this.extensions
.Clear();
77 xsltMessageEncountered
= null;
80 private static void CheckArgumentNull(object param
, string paramName
) {
82 throw new ArgumentNullException(paramName
);