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
- SQLBytesStorage.cs
- DataGridGeneralPage.cs
- Axis.cs
- ActivityExecutorOperation.cs
- DependencyPropertyValueSerializer.cs
- OleDbException.cs
- OdbcDataAdapter.cs
- DataGridViewComboBoxColumnDesigner.cs
- TabControlDesigner.cs
- GuidConverter.cs
- ConstantCheck.cs
- StandardBindingElementCollection.cs
- CharKeyFrameCollection.cs
- PhonemeEventArgs.cs
- __ComObject.cs
- TransportElement.cs
- MessageBuffer.cs
- CodeTypeParameter.cs
- SqlExpressionNullability.cs
- Internal.cs
- DBNull.cs
- DbProviderManifest.cs
- DocumentSequence.cs
- UniqueEventHelper.cs
- StylusPointProperties.cs
- RootBuilder.cs
- TreeViewDesigner.cs
- OrderByExpression.cs
- DelayLoadType.cs
- MobileRedirect.cs
- BitHelper.cs
- MultipleViewPattern.cs
- AssociationSetEnd.cs
- SafeThreadHandle.cs
- UserControlFileEditor.cs
- MetadataArtifactLoaderResource.cs
- WebPartVerbCollection.cs
- SystemTcpStatistics.cs
- SQLMembershipProvider.cs
- FormsAuthenticationTicket.cs
- GeneralTransform.cs
- TypeBrowserDialog.cs
- LookupNode.cs
- odbcmetadatacollectionnames.cs
- XmlEntity.cs
- RTLAwareMessageBox.cs
- DataGridTablesFactory.cs
- ValidationRule.cs
- XmlSchemaSimpleTypeList.cs
- XmlReaderSettings.cs
- TrackingServices.cs
- TaskExtensions.cs
- XmlSerializerAssemblyAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- AspCompat.cs
- ApplicationInterop.cs
- JsonCollectionDataContract.cs
- TextTreeInsertElementUndoUnit.cs
- TargetInvocationException.cs
- BackgroundWorker.cs
- BindStream.cs
- SerializationInfoEnumerator.cs
- CellRelation.cs
- SoapReflectionImporter.cs
- BridgeDataRecord.cs
- ListControl.cs
- PageEventArgs.cs
- OleDbDataAdapter.cs
- X509Certificate2Collection.cs
- MemoryStream.cs
- Events.cs
- TraceUtility.cs
- InvalidAsynchronousStateException.cs
- GeneralTransform2DTo3DTo2D.cs
- DataProtection.cs
- EntityDesignerUtils.cs
- ResourceIDHelper.cs
- XmlAggregates.cs
- XmlMtomWriter.cs
- MasterPageParser.cs
- AnnotationObservableCollection.cs
- XpsColorContext.cs
- InstanceDataCollection.cs
- MsmqInputChannel.cs
- KnownBoxes.cs
- SqlDataSourceFilteringEventArgs.cs
- ListViewItemEventArgs.cs
- EventLogPermissionEntry.cs
- XmlSecureResolver.cs
- PropertyPushdownHelper.cs
- TableItemStyle.cs
- StructuredType.cs
- Context.cs
- HtmlTextArea.cs
- Misc.cs
- CheckBoxPopupAdapter.cs
- ExpressionParser.cs
- NameObjectCollectionBase.cs
- DataObjectMethodAttribute.cs
- BridgeDataRecord.cs