Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; ////// /// 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.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Menu.cs
- Expression.cs
- InvariantComparer.cs
- SynchronousReceiveElement.cs
- InkCanvasInnerCanvas.cs
- ImageFormatConverter.cs
- ControlPaint.cs
- TextRunProperties.cs
- MessageBox.cs
- RandomNumberGenerator.cs
- DocumentGridPage.cs
- CachedTypeface.cs
- ArrayList.cs
- SimpleRecyclingCache.cs
- PersistChildrenAttribute.cs
- RouteParametersHelper.cs
- IndexOutOfRangeException.cs
- SessionPageStateSection.cs
- Zone.cs
- Dump.cs
- IsolatedStoragePermission.cs
- BuildManager.cs
- EndpointAddressAugust2004.cs
- ControlAdapter.cs
- ParseHttpDate.cs
- InvalidateEvent.cs
- BaseTreeIterator.cs
- NavigateUrlConverter.cs
- MemoryMappedViewStream.cs
- TypeToTreeConverter.cs
- BamlBinaryReader.cs
- ListViewInsertEventArgs.cs
- VersionPair.cs
- TableItemPattern.cs
- ContainerUIElement3D.cs
- CopyOnWriteList.cs
- RecommendedAsConfigurableAttribute.cs
- ObsoleteAttribute.cs
- DecimalAnimationUsingKeyFrames.cs
- Normalization.cs
- MatrixUtil.cs
- TreeBuilderBamlTranslator.cs
- ListViewDeleteEventArgs.cs
- SqlTopReducer.cs
- ComplexType.cs
- SrgsToken.cs
- XmlQualifiedName.cs
- FormDocumentDesigner.cs
- OracleCommandBuilder.cs
- ConfigurationLockCollection.cs
- UnmanagedBitmapWrapper.cs
- MasterPageBuildProvider.cs
- NTAccount.cs
- CmsUtils.cs
- Process.cs
- WebPartConnectionsEventArgs.cs
- Array.cs
- UrlPath.cs
- TextModifierScope.cs
- BindingCollection.cs
- CapabilitiesAssignment.cs
- DateTimeConstantAttribute.cs
- AttachedPropertyDescriptor.cs
- WindowsListBox.cs
- Statements.cs
- ContextBase.cs
- BindingCompleteEventArgs.cs
- TemplateKey.cs
- HttpListener.cs
- MachineKeySection.cs
- BaseAsyncResult.cs
- WebPartHelpVerb.cs
- XamlTemplateSerializer.cs
- RequestStatusBarUpdateEventArgs.cs
- ParallelEnumerableWrapper.cs
- AutomationAttributeInfo.cs
- TypeElement.cs
- ItemsPresenter.cs
- HandoffBehavior.cs
- RandomDelaySendsAsyncResult.cs
- FormatterConverter.cs
- DataGridTextBox.cs
- SignatureDescription.cs
- TabPage.cs
- NavigationService.cs
- VSWCFServiceContractGenerator.cs
- NegatedConstant.cs
- MessageBox.cs
- ChildrenQuery.cs
- SaveFileDialog.cs
- TemplateControlBuildProvider.cs
- BindingExpressionUncommonField.cs
- Rule.cs
- Rotation3D.cs
- assemblycache.cs
- DataBinding.cs
- ObjectItemConventionAssemblyLoader.cs
- LongAverageAggregationOperator.cs
- NullReferenceException.cs
- ScrollEvent.cs