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; ////// /// 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. //------------------------------------------------------------------------------ //[To be supplied.] ///// 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.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EvidenceTypeDescriptor.cs
- LabelDesigner.cs
- ISFTagAndGuidCache.cs
- EndpointDesigner.cs
- XmlSchemaValidator.cs
- OleDbDataAdapter.cs
- Durable.cs
- NumericUpDownAcceleration.cs
- MetaChildrenColumn.cs
- CriticalFinalizerObject.cs
- GenericAuthenticationEventArgs.cs
- Track.cs
- ObjectDataSourceFilteringEventArgs.cs
- InternalTypeHelper.cs
- StructuralComparisons.cs
- MessageBodyMemberAttribute.cs
- Opcode.cs
- HttpAsyncResult.cs
- TemplatePagerField.cs
- SetStoryboardSpeedRatio.cs
- BitmapData.cs
- ConstructorBuilder.cs
- ThreadAbortException.cs
- DataGridViewCheckBoxColumn.cs
- TypeListConverter.cs
- PrimitiveSchema.cs
- __ConsoleStream.cs
- DefaultAsyncDataDispatcher.cs
- DbSetClause.cs
- XsdDateTime.cs
- HtmlListAdapter.cs
- SiteMapHierarchicalDataSourceView.cs
- XmlSchemaObject.cs
- PointAnimationUsingPath.cs
- ColorContextHelper.cs
- EastAsianLunisolarCalendar.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- StateInitializationDesigner.cs
- DataExpression.cs
- HostExecutionContextManager.cs
- AtomicFile.cs
- Hashtable.cs
- XmlChoiceIdentifierAttribute.cs
- TextTreePropertyUndoUnit.cs
- JournalEntryListConverter.cs
- Geometry.cs
- RequestUriProcessor.cs
- AppDomainFactory.cs
- MinMaxParagraphWidth.cs
- EndpointPerformanceCounters.cs
- ReceiveActivityDesignerTheme.cs
- DataFormats.cs
- TextStore.cs
- MenuCommands.cs
- LineServices.cs
- UserPersonalizationStateInfo.cs
- ResolveCriteria11.cs
- CollectionDataContract.cs
- DbDataReader.cs
- StatusBar.cs
- StylusButtonCollection.cs
- AnnotationAuthorChangedEventArgs.cs
- GenerateTemporaryAssemblyTask.cs
- CodeAttachEventStatement.cs
- WebEvents.cs
- ElementNotEnabledException.cs
- TraceContextEventArgs.cs
- storepermissionattribute.cs
- WindowsContainer.cs
- SuppressMergeCheckAttribute.cs
- ResourceAttributes.cs
- ReferencedCollectionType.cs
- PreservationFileWriter.cs
- NativeMethods.cs
- EntryIndex.cs
- XmlQueryRuntime.cs
- DataGridViewBindingCompleteEventArgs.cs
- InheritablePropertyChangeInfo.cs
- SetStoryboardSpeedRatio.cs
- SettingsPropertyCollection.cs
- SimpleHandlerFactory.cs
- WriteableBitmap.cs
- MonitorWrapper.cs
- EncryptedReference.cs
- ApplicationActivator.cs
- NestPullup.cs
- Simplifier.cs
- ToolStripGripRenderEventArgs.cs
- NativeMethodsOther.cs
- SQLDoubleStorage.cs
- DisposableCollectionWrapper.cs
- DataTemplate.cs
- TypedDataSetSchemaImporterExtension.cs
- XsltConvert.cs
- Cursor.cs
- Transform3DCollection.cs
- ComponentDispatcherThread.cs
- AppDomainProtocolHandler.cs
- MemberCollection.cs
- FlowDocumentReader.cs