Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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
- Error.cs
- ServerIdentity.cs
- EntityDataSourceSelectingEventArgs.cs
- DescriptionAttribute.cs
- EntityConnectionStringBuilder.cs
- ClosureBinding.cs
- BitArray.cs
- HierarchicalDataTemplate.cs
- Paragraph.cs
- GridLengthConverter.cs
- GroupStyle.cs
- WinInetCache.cs
- NativeMethods.cs
- ConfigurationManagerInternalFactory.cs
- TextRunTypographyProperties.cs
- AspNetHostingPermission.cs
- HostSecurityManager.cs
- COM2ICategorizePropertiesHandler.cs
- StreamInfo.cs
- HwndSourceKeyboardInputSite.cs
- _StreamFramer.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- BaseDataBoundControl.cs
- MexNamedPipeBindingElement.cs
- MissingFieldException.cs
- VisualTreeUtils.cs
- SqlReferenceCollection.cs
- XmlSchemaInfo.cs
- ClrProviderManifest.cs
- ClassicBorderDecorator.cs
- WebPartsPersonalizationAuthorization.cs
- HotCommands.cs
- DefaultEvaluationContext.cs
- ConstructorExpr.cs
- HostingEnvironmentException.cs
- SequentialUshortCollection.cs
- PrimitiveXmlSerializers.cs
- SafeNativeMethods.cs
- SqlBooleanMismatchVisitor.cs
- Transform.cs
- CheckBoxPopupAdapter.cs
- WebServiceErrorEvent.cs
- ShaperBuffers.cs
- _ConnectionGroup.cs
- VideoDrawing.cs
- UInt16.cs
- ColumnMapProcessor.cs
- TransformerConfigurationWizardBase.cs
- metadatamappinghashervisitor.cs
- FileVersion.cs
- SqlInternalConnectionSmi.cs
- TypeRefElement.cs
- MetadataArtifactLoaderFile.cs
- ClientBuildManagerCallback.cs
- AlternationConverter.cs
- RandomDelayQueuedSendsAsyncResult.cs
- CheckoutException.cs
- DataException.cs
- WindowShowOrOpenTracker.cs
- ComponentDispatcher.cs
- _DigestClient.cs
- ValidationResult.cs
- TriggerBase.cs
- InputProcessorProfilesLoader.cs
- ReflectionTypeLoadException.cs
- TextEditorTyping.cs
- CodeComment.cs
- CompoundFileReference.cs
- PropertyPathConverter.cs
- QilXmlReader.cs
- IBuiltInEvidence.cs
- TextSelectionHelper.cs
- Registry.cs
- TaskFileService.cs
- ObjectStateFormatter.cs
- SafeTokenHandle.cs
- DbMetaDataColumnNames.cs
- TextSelection.cs
- DashStyles.cs
- IIS7WorkerRequest.cs
- AVElementHelper.cs
- MarkupProperty.cs
- SchemaDeclBase.cs
- TableSectionStyle.cs
- GatewayIPAddressInformationCollection.cs
- EndPoint.cs
- EntityContainerEntitySet.cs
- RequestCacheManager.cs
- SmiRequestExecutor.cs
- ContentOperations.cs
- XsdBuilder.cs
- PDBReader.cs
- Rect.cs
- TripleDESCryptoServiceProvider.cs
- CommonRemoteMemoryBlock.cs
- DrawListViewSubItemEventArgs.cs
- ContactManager.cs
- SoapExtensionTypeElement.cs
- HttpModulesSection.cs
- MouseButtonEventArgs.cs