Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / Configuration.cs / 1305376 / Configuration.cs
namespace System.Workflow.ComponentModel.Compiler
{
using System.Xml;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.Xml.Serialization;
using System.Text.RegularExpressions;
internal sealed class WorkflowCompilerConfigurationSectionGroup : ConfigurationSectionGroup
{
public WorkflowCompilerConfigurationSectionGroup()
{
}
}
internal sealed class AuthorizedTypesSectionHandler : IConfigurationSectionHandler
{
const string TargetFxVersionAttribute = "version";
#region IConfigurationSectionHandler Members
object IConfigurationSectionHandler.Create(object parent, object configContext, XmlNode section)
{
Dictionary> authorizedTypes = new Dictionary>();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(AuthorizedType));
foreach (XmlNode targetFx in section.ChildNodes)
{
XmlAttribute versionAttribute = targetFx.Attributes.GetNamedItem(TargetFxVersionAttribute) as XmlAttribute;
if (versionAttribute != null)
{
string version = versionAttribute.Value;
if (!string.IsNullOrEmpty(version))
{
IList versionTypes;
if (!authorizedTypes.TryGetValue(version, out versionTypes))
{
versionTypes = new List();
authorizedTypes.Add(version, versionTypes);
}
foreach (XmlNode authorizedTypeNode in targetFx.ChildNodes)
{
AuthorizedType authorizedType = xmlSerializer.Deserialize(new XmlNodeReader(authorizedTypeNode)) as AuthorizedType;
if (authorizedType != null)
{
versionTypes.Add(authorizedType);
}
}
}
}
}
return authorizedTypes;
}
#endregion
}
[XmlType("authorizedType")]
public sealed class AuthorizedType
{
private string assemblyName;
private string namespaceName;
private string typeName;
private bool isAuthorized;
private Regex regex;
[XmlAttribute]
public string Assembly
{
get
{
return this.assemblyName;
}
set
{
this.assemblyName = value;
}
}
[XmlAttribute]
public string Namespace
{
get
{
return this.namespaceName;
}
set
{
this.namespaceName = value;
}
}
[XmlAttribute]
public string TypeName
{
get
{
return this.typeName;
}
set
{
this.typeName = value;
}
}
[XmlAttribute]
public string Authorized
{
get
{
return this.isAuthorized.ToString();
}
set
{
this.isAuthorized = bool.Parse(value);
}
}
[XmlIgnore]
public Regex RegularExpression
{
get
{
if (this.regex == null)
{
this.regex = new Regex(MakeRegex(string.Format(CultureInfo.InvariantCulture, "{0}.{1}, {2}", new object[] { this.namespaceName, this.typeName, this.assemblyName })), RegexOptions.Compiled);
return this.regex;
}
return this.regex;
}
}
private static string MakeRegex(string inputString)
{
// RegEx uses the following as meta characters:
// [\^$.|?*+()
// Of these we translate * and ? to DOS wildcard equivalents in RegEx.
// We escape rest of the Regex meta characters to thwart any luring
// attacks caused by malformed inputString using meta characters.
string outputString = inputString.Replace(@"\", @"\\");
outputString = outputString.Replace("[", @"\[");
outputString = outputString.Replace("^", @"\^");
outputString = outputString.Replace("$", @"\$");
outputString = outputString.Replace("|", @"\|");
outputString = outputString.Replace("+", @"\+");
outputString = outputString.Replace("(", @"\(");
outputString = outputString.Replace(")", @"\)");
outputString = outputString.Replace(".", @"\x2E");
outputString = outputString.Replace("*", @"[\w\x60\x2E]{0,}");
outputString = outputString.Replace("?", @"\w{1,1}");
// Make whitespaces optional
outputString = outputString.Replace(" ", @"\s{0,}");
return outputString;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EraserBehavior.cs
- wmiprovider.cs
- WebPartZoneCollection.cs
- ArrayTypeMismatchException.cs
- StrongNameUtility.cs
- EnumMember.cs
- Enum.cs
- XmlEncoding.cs
- KeyProperty.cs
- Merger.cs
- mongolianshape.cs
- OptimalTextSource.cs
- NodeFunctions.cs
- GridLength.cs
- InternalUserCancelledException.cs
- MimeFormatExtensions.cs
- PeerTransportBindingElement.cs
- RuntimeEnvironment.cs
- LoginCancelEventArgs.cs
- AnalyzedTree.cs
- EditingCommands.cs
- CommandValueSerializer.cs
- XmlWrappingWriter.cs
- ApplicationSecurityManager.cs
- PrintDialog.cs
- NetTcpBinding.cs
- TargetParameterCountException.cs
- InvokeBinder.cs
- ServerIdentity.cs
- HandleTable.cs
- FilterableAttribute.cs
- ToolStripLabel.cs
- InvalidFilterCriteriaException.cs
- LinkGrep.cs
- XmlSchemaSimpleTypeUnion.cs
- InputMethodStateTypeInfo.cs
- ReturnType.cs
- XmlSignatureManifest.cs
- GeometryHitTestParameters.cs
- RuntimeWrappedException.cs
- PtsCache.cs
- ADMembershipProvider.cs
- Variant.cs
- LinqDataSourceDisposeEventArgs.cs
- WebPartConnectionsConnectVerb.cs
- ObjectDataSourceMethodEventArgs.cs
- NetworkInformationPermission.cs
- HttpInputStream.cs
- AmbientLight.cs
- SymDocumentType.cs
- EventDescriptor.cs
- CollectionViewGroupInternal.cs
- CompositeDataBoundControl.cs
- OAVariantLib.cs
- dtdvalidator.cs
- CompositeActivityDesigner.cs
- TextServicesPropertyRanges.cs
- OverflowException.cs
- CodeValidator.cs
- RadioButtonFlatAdapter.cs
- XmlDataSourceNodeDescriptor.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- RuleSetCollection.cs
- EventsTab.cs
- LambdaCompiler.Expressions.cs
- TextTreePropertyUndoUnit.cs
- DropDownButton.cs
- DataPagerField.cs
- AnnotationResource.cs
- CircleHotSpot.cs
- ToolStripPanelDesigner.cs
- ComponentResourceKeyConverter.cs
- EventDescriptorCollection.cs
- ZipArchive.cs
- SqlTypesSchemaImporter.cs
- EntitySetRetriever.cs
- TypeUtil.cs
- StagingAreaInputItem.cs
- Number.cs
- PropertyEntry.cs
- ToolStripDropDownClosingEventArgs.cs
- RestHandler.cs
- DataGridBoolColumn.cs
- Sql8ExpressionRewriter.cs
- _StreamFramer.cs
- ForeignKeyConstraint.cs
- FormViewUpdatedEventArgs.cs
- XmlQualifiedName.cs
- CapabilitiesUse.cs
- Nullable.cs
- ListSourceHelper.cs
- HostProtectionException.cs
- SemanticResolver.cs
- FaultHandlingFilter.cs
- BlurBitmapEffect.cs
- DetailsViewRow.cs
- StrongNameIdentityPermission.cs
- RequestResizeEvent.cs
- ProjectionPruner.cs
- SchemaElementLookUpTableEnumerator.cs