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
- DataTableMappingCollection.cs
- DesignerUtility.cs
- TrustManagerMoreInformation.cs
- ToolStripOverflowButton.cs
- SafeNativeMethods.cs
- XmlSchemaInfo.cs
- PageParserFilter.cs
- BaseResourcesBuildProvider.cs
- Stack.cs
- HierarchicalDataSourceControl.cs
- objectresult_tresulttype.cs
- ThumbButtonInfo.cs
- SQLResource.cs
- SqlUtil.cs
- EventSinkHelperWriter.cs
- TokenizerHelper.cs
- UnmanagedMemoryStreamWrapper.cs
- AddressAccessDeniedException.cs
- RenderData.cs
- WorkflowValidationFailedException.cs
- MediaElementAutomationPeer.cs
- _SslStream.cs
- ValidationHelper.cs
- IgnoreSectionHandler.cs
- HttpRequestCacheValidator.cs
- DataServiceBuildProvider.cs
- SqlBulkCopy.cs
- TripleDES.cs
- NativeCppClassAttribute.cs
- SystemIPv6InterfaceProperties.cs
- HttpHandlerActionCollection.cs
- CallInfo.cs
- StylusCollection.cs
- UnsafeNativeMethods.cs
- XmlKeywords.cs
- ParameterCollection.cs
- HtmlControlPersistable.cs
- DBCommand.cs
- Listbox.cs
- DoubleLinkListEnumerator.cs
- TextEffectCollection.cs
- ResourceProviderFactory.cs
- StreamGeometry.cs
- VectorAnimationUsingKeyFrames.cs
- Int16AnimationBase.cs
- JsonDeserializer.cs
- DesignerTextViewAdapter.cs
- BrowserDefinition.cs
- CharacterHit.cs
- ToolStripCustomTypeDescriptor.cs
- DiagnosticsConfiguration.cs
- TagMapInfo.cs
- Vector3D.cs
- SafeFindHandle.cs
- QilPatternVisitor.cs
- HtmlTableCellCollection.cs
- ShapingEngine.cs
- OutputCacheSettingsSection.cs
- ToolStripItemImageRenderEventArgs.cs
- ConnectionManagementSection.cs
- UpdatePanel.cs
- ZipIOFileItemStream.cs
- PartitionedStream.cs
- mongolianshape.cs
- SuppressMessageAttribute.cs
- ValuePatternIdentifiers.cs
- ManifestResourceInfo.cs
- DockingAttribute.cs
- PromptStyle.cs
- FormViewDeletedEventArgs.cs
- AssemblyAttributesGoHere.cs
- ControlUtil.cs
- TransformValueSerializer.cs
- TextSimpleMarkerProperties.cs
- CodeArrayCreateExpression.cs
- CodeDirectiveCollection.cs
- KeyValuePair.cs
- WindowInteropHelper.cs
- IndentTextWriter.cs
- DataGridItemAttachedStorage.cs
- CombinedGeometry.cs
- ChannelSinkStacks.cs
- User.cs
- HttpRequestBase.cs
- MetadataSerializer.cs
- DirectoryRedirect.cs
- SmtpAuthenticationManager.cs
- ColumnHeaderCollectionEditor.cs
- Button.cs
- RequestResizeEvent.cs
- SpellerError.cs
- ViewUtilities.cs
- UpdateProgress.cs
- BroadcastEventHelper.cs
- ObjectListCommandsPage.cs
- UInt16Storage.cs
- SqlProviderManifest.cs
- Condition.cs
- KeyEventArgs.cs
- NumericUpDown.cs