| File: FrameworkFork\Microsoft.Xml\Xml\Xslt\XsltArgumentList.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Collections; // using System.Security.Permissions; namespace Microsoft.Xml.Xsl { using System; using Microsoft.Xml; public abstract class XsltMessageEncounteredEventArgs : EventArgs { public abstract string Message { get; } } public delegate void XsltMessageEncounteredEventHandler(object sender, XsltMessageEncounteredEventArgs e); public class XsltArgumentList { private Hashtable _parameters = new Hashtable(); private Hashtable _extensions = new Hashtable(); // Used for reporting xsl:message's during execution internal XsltMessageEncounteredEventHandler xsltMessageEncountered = null; public XsltArgumentList() { } public object GetParam(string name, string namespaceUri) { return _parameters[new XmlQualifiedName(name, namespaceUri)]; } public object GetExtensionObject(string namespaceUri) { return _extensions[namespaceUri]; } public void AddParam(string name, string namespaceUri, object parameter) { CheckArgumentNull(name, "name"); CheckArgumentNull(namespaceUri, "namespaceUri"); CheckArgumentNull(parameter, "parameter"); XmlQualifiedName qname = new XmlQualifiedName(name, namespaceUri); qname.Verify(); _parameters.Add(qname, parameter); } public void AddExtensionObject(string namespaceUri, object extension) { CheckArgumentNull(namespaceUri, "namespaceUri"); CheckArgumentNull(extension, "extension"); _extensions.Add(namespaceUri, extension); } public object RemoveParam(string name, string namespaceUri) { XmlQualifiedName qname = new XmlQualifiedName(name, namespaceUri); object parameter = _parameters[qname]; _parameters.Remove(qname); return parameter; } public object RemoveExtensionObject(string namespaceUri) { object extension = _extensions[namespaceUri]; _extensions.Remove(namespaceUri); return extension; } public event XsltMessageEncounteredEventHandler XsltMessageEncountered { add { xsltMessageEncountered += value; } remove { xsltMessageEncountered -= value; } } public void Clear() { _parameters.Clear(); _extensions.Clear(); xsltMessageEncountered = null; } private static void CheckArgumentNull(object param, string paramName) { if (param == null) { throw new ArgumentNullException(paramName); } } } }