Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / Serialization / XmlSerializerFactory.cs / 1 / XmlSerializerFactory.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Serialization {
using System.Reflection;
using System.Collections;
using System.IO;
using System.Xml.Schema;
using System;
using System.Text;
using System.Threading;
using System.Globalization;
using System.Security.Permissions;
using System.Security.Policy;
using System.Xml.Serialization.Configuration;
using System.Diagnostics;
using System.CodeDom.Compiler;
///
///
/// [To be supplied.]
///
public class XmlSerializerFactory {
static TempAssemblyCache cache = new TempAssemblyCache();
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace) {
return CreateSerializer(type, overrides, extraTypes, root, defaultNamespace, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlRootAttribute root) {
return CreateSerializer(type, null, new Type[0], root, null, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, Type[] extraTypes) {
return CreateSerializer(type, null, extraTypes, null, null, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides) {
return CreateSerializer(type, overrides, new Type[0], null, null, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(XmlTypeMapping xmlTypeMapping) {
TempAssembly tempAssembly = XmlSerializer.GenerateTempAssembly(xmlTypeMapping);
return (XmlSerializer)tempAssembly.Contract.TypedSerializers[xmlTypeMapping.Key];
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type) {
return CreateSerializer(type, (string)null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, string defaultNamespace) {
if (type == null)
throw new ArgumentNullException("type");
TempAssembly tempAssembly = cache[defaultNamespace, type];
XmlTypeMapping mapping = null;
if (tempAssembly == null) {
lock (cache) {
tempAssembly = cache[defaultNamespace, type];
if (tempAssembly == null) {
XmlSerializerImplementation contract;
Assembly assembly = TempAssembly.LoadGeneratedAssembly(type, defaultNamespace, out contract);
if (assembly == null) {
// need to reflect and generate new serialization assembly
XmlReflectionImporter importer = new XmlReflectionImporter(defaultNamespace);
mapping = importer.ImportTypeMapping(type, null, defaultNamespace);
tempAssembly = XmlSerializer.GenerateTempAssembly(mapping, type, defaultNamespace);
}
else {
tempAssembly = new TempAssembly(contract);
}
cache.Add(defaultNamespace, type, tempAssembly);
}
}
}
if (mapping == null) {
mapping = XmlReflectionImporter.GetTopLevelMapping(type, defaultNamespace);
}
return (XmlSerializer)tempAssembly.Contract.GetSerializer(type);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location, Evidence evidence) {
if (type == null)
throw new ArgumentNullException("type");
XmlReflectionImporter importer = new XmlReflectionImporter(overrides, defaultNamespace);
for (int i = 0; i < extraTypes.Length; i++)
importer.IncludeType(extraTypes[i]);
XmlTypeMapping mapping = importer.ImportTypeMapping(type, root, defaultNamespace);
TempAssembly tempAssembly = XmlSerializer.GenerateTempAssembly(mapping, type, defaultNamespace, location, evidence);
return (XmlSerializer)tempAssembly.Contract.TypedSerializers[mapping.Key];
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Serialization {
using System.Reflection;
using System.Collections;
using System.IO;
using System.Xml.Schema;
using System;
using System.Text;
using System.Threading;
using System.Globalization;
using System.Security.Permissions;
using System.Security.Policy;
using System.Xml.Serialization.Configuration;
using System.Diagnostics;
using System.CodeDom.Compiler;
///
///
/// [To be supplied.]
///
public class XmlSerializerFactory {
static TempAssemblyCache cache = new TempAssemblyCache();
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace) {
return CreateSerializer(type, overrides, extraTypes, root, defaultNamespace, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlRootAttribute root) {
return CreateSerializer(type, null, new Type[0], root, null, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, Type[] extraTypes) {
return CreateSerializer(type, null, extraTypes, null, null, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides) {
return CreateSerializer(type, overrides, new Type[0], null, null, null, null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(XmlTypeMapping xmlTypeMapping) {
TempAssembly tempAssembly = XmlSerializer.GenerateTempAssembly(xmlTypeMapping);
return (XmlSerializer)tempAssembly.Contract.TypedSerializers[xmlTypeMapping.Key];
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type) {
return CreateSerializer(type, (string)null);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, string defaultNamespace) {
if (type == null)
throw new ArgumentNullException("type");
TempAssembly tempAssembly = cache[defaultNamespace, type];
XmlTypeMapping mapping = null;
if (tempAssembly == null) {
lock (cache) {
tempAssembly = cache[defaultNamespace, type];
if (tempAssembly == null) {
XmlSerializerImplementation contract;
Assembly assembly = TempAssembly.LoadGeneratedAssembly(type, defaultNamespace, out contract);
if (assembly == null) {
// need to reflect and generate new serialization assembly
XmlReflectionImporter importer = new XmlReflectionImporter(defaultNamespace);
mapping = importer.ImportTypeMapping(type, null, defaultNamespace);
tempAssembly = XmlSerializer.GenerateTempAssembly(mapping, type, defaultNamespace);
}
else {
tempAssembly = new TempAssembly(contract);
}
cache.Add(defaultNamespace, type, tempAssembly);
}
}
}
if (mapping == null) {
mapping = XmlReflectionImporter.GetTopLevelMapping(type, defaultNamespace);
}
return (XmlSerializer)tempAssembly.Contract.GetSerializer(type);
}
///
///
/// [To be supplied.]
///
public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location, Evidence evidence) {
if (type == null)
throw new ArgumentNullException("type");
XmlReflectionImporter importer = new XmlReflectionImporter(overrides, defaultNamespace);
for (int i = 0; i < extraTypes.Length; i++)
importer.IncludeType(extraTypes[i]);
XmlTypeMapping mapping = importer.ImportTypeMapping(type, root, defaultNamespace);
TempAssembly tempAssembly = XmlSerializer.GenerateTempAssembly(mapping, type, defaultNamespace, location, evidence);
return (XmlSerializer)tempAssembly.Contract.TypedSerializers[mapping.Key];
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AxisAngleRotation3D.cs
- GenericsInstances.cs
- ActivityLocationReferenceEnvironment.cs
- KnownBoxes.cs
- FunctionMappingTranslator.cs
- FtpCachePolicyElement.cs
- TransformPattern.cs
- Throw.cs
- PathTooLongException.cs
- CustomWebEventKey.cs
- ObjectListFieldCollection.cs
- ImpersonateTokenRef.cs
- BaseTransportHeaders.cs
- URIFormatException.cs
- SqlFileStream.cs
- ToolBar.cs
- ScriptResourceHandler.cs
- SqlRowUpdatedEvent.cs
- BeginGetFileNameFromUserRequest.cs
- Renderer.cs
- Panel.cs
- ElementNotAvailableException.cs
- EdmItemCollection.cs
- AnnotationResource.cs
- StreamSecurityUpgradeAcceptor.cs
- WindowsNonControl.cs
- SpeechSeg.cs
- CfgParser.cs
- FixedPosition.cs
- DataListCommandEventArgs.cs
- StateMachine.cs
- XmlStrings.cs
- AspProxy.cs
- TextProviderWrapper.cs
- DependencySource.cs
- _UncName.cs
- PermissionRequestEvidence.cs
- EdmError.cs
- ExceptionUtility.cs
- AndCondition.cs
- ColorConverter.cs
- IssuedTokenClientCredential.cs
- TrustLevelCollection.cs
- HyperLinkField.cs
- TraceUtility.cs
- XamlInt32CollectionSerializer.cs
- EDesignUtil.cs
- BezierSegment.cs
- ListViewItemEventArgs.cs
- TcpProcessProtocolHandler.cs
- Model3DCollection.cs
- HitTestParameters3D.cs
- InvalidEnumArgumentException.cs
- TextDpi.cs
- PartitionResolver.cs
- CursorConverter.cs
- XmlQueryStaticData.cs
- SerialPort.cs
- Button.cs
- X509UI.cs
- ScrollData.cs
- AuthenticationService.cs
- ProxyManager.cs
- XmlnsCache.cs
- ConfigurationProperty.cs
- ConfigurationValue.cs
- PageThemeBuildProvider.cs
- InputProcessorProfiles.cs
- ProfileProvider.cs
- MobileUserControl.cs
- StructuredTypeEmitter.cs
- SchemaExporter.cs
- EnumerableCollectionView.cs
- GridViewHeaderRowPresenter.cs
- WeakReferenceKey.cs
- ClientBuildManagerCallback.cs
- SqlUtils.cs
- ObjectAnimationUsingKeyFrames.cs
- XmlEncoding.cs
- InternalSafeNativeMethods.cs
- FreezableOperations.cs
- CqlErrorHelper.cs
- SmtpCommands.cs
- HttpCapabilitiesBase.cs
- PathSegment.cs
- XsdValidatingReader.cs
- SQLInt32.cs
- ServicePoint.cs
- TypedReference.cs
- Security.cs
- WebPartActionVerb.cs
- InteropAutomationProvider.cs
- ComponentManagerBroker.cs
- SettingsPropertyIsReadOnlyException.cs
- TreeViewImageIndexConverter.cs
- Matrix.cs
- XmlBinaryWriterSession.cs
- DataTableTypeConverter.cs
- WebHttpSecurityModeHelper.cs
- CurrencyManager.cs