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
- DesignerVerbToolStripMenuItem.cs
- NetworkCredential.cs
- DynamicQueryableWrapper.cs
- UserControl.cs
- ZipIOFileItemStream.cs
- PropertyConverter.cs
- RankException.cs
- WindowsGraphics2.cs
- _HeaderInfo.cs
- LabelEditEvent.cs
- HtmlButton.cs
- FileDialogCustomPlace.cs
- DesignerActionUI.cs
- EntityClassGenerator.cs
- MexServiceChannelBuilder.cs
- BinaryConverter.cs
- ProcessProtocolHandler.cs
- RTLAwareMessageBox.cs
- SafeLocalMemHandle.cs
- CodeIdentifiers.cs
- DataKey.cs
- TextTreeExtractElementUndoUnit.cs
- WebPartAddingEventArgs.cs
- CrossContextChannel.cs
- XmlMtomReader.cs
- HTTPNotFoundHandler.cs
- DataTableTypeConverter.cs
- PropertyPathConverter.cs
- ProxyAttribute.cs
- XpsS0ValidatingLoader.cs
- ErrorRuntimeConfig.cs
- NamedElement.cs
- SelectionRangeConverter.cs
- BamlResourceSerializer.cs
- WhereQueryOperator.cs
- GeneralTransform.cs
- C14NUtil.cs
- HiddenFieldPageStatePersister.cs
- FlowDocumentReader.cs
- LineServicesRun.cs
- ParseHttpDate.cs
- StartUpEventArgs.cs
- FilteredAttributeCollection.cs
- SafeNativeMethods.cs
- XsltSettings.cs
- NotificationContext.cs
- XhtmlConformanceSection.cs
- DashStyle.cs
- PaginationProgressEventArgs.cs
- ButtonStandardAdapter.cs
- SqlBulkCopyColumnMapping.cs
- TransactionFlowAttribute.cs
- GridViewAutomationPeer.cs
- DataGridViewButtonCell.cs
- DynamicControlParameter.cs
- cookieexception.cs
- Module.cs
- IResourceProvider.cs
- SharedStatics.cs
- ResourceExpression.cs
- TimerElapsedEvenArgs.cs
- CompiledXpathExpr.cs
- ProfileSettingsCollection.cs
- LinearKeyFrames.cs
- WeakHashtable.cs
- DictionaryContent.cs
- Converter.cs
- FastEncoder.cs
- ToolboxComponentsCreatingEventArgs.cs
- SafeViewOfFileHandle.cs
- TimeStampChecker.cs
- EncodingNLS.cs
- BufferedGraphics.cs
- ToolStripSeparator.cs
- XmlAnyElementAttribute.cs
- GZipDecoder.cs
- LeaseManager.cs
- AuthenticationSection.cs
- CustomLineCap.cs
- unsafeIndexingFilterStream.cs
- ComPlusThreadInitializer.cs
- RTTypeWrapper.cs
- GacUtil.cs
- NavigationProperty.cs
- AlternateView.cs
- ValidationUtility.cs
- InfoCardKeyedHashAlgorithm.cs
- InfoCardSymmetricAlgorithm.cs
- GlyphInfoList.cs
- ObjectStateFormatter.cs
- FileNotFoundException.cs
- HttpClientCertificate.cs
- DocumentReferenceCollection.cs
- StaticTextPointer.cs
- fixedPageContentExtractor.cs
- ProxyFragment.cs
- MenuTracker.cs
- CapabilitiesRule.cs
- FileSecurity.cs
- TypefaceMap.cs