Code:
/ FX-1434 / FX-1434 / 1.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
- ChineseLunisolarCalendar.cs
- PasswordRecoveryAutoFormat.cs
- SchemaManager.cs
- SliderAutomationPeer.cs
- Command.cs
- RectConverter.cs
- sqlser.cs
- Empty.cs
- UnsafeNativeMethods.cs
- MessageBox.cs
- Separator.cs
- StringToken.cs
- Double.cs
- UnitySerializationHolder.cs
- SqlClientWrapperSmiStream.cs
- ScopelessEnumAttribute.cs
- WebDisplayNameAttribute.cs
- DiscoveryCallbackBehavior.cs
- EntryPointNotFoundException.cs
- DeferredTextReference.cs
- MsmqHostedTransportManager.cs
- CollectionViewSource.cs
- RepeatButtonAutomationPeer.cs
- Faults.cs
- ValidationErrorCollection.cs
- PersistenceProviderFactory.cs
- _FixedSizeReader.cs
- AdapterUtil.cs
- Tuple.cs
- HtmlInputReset.cs
- XmlSchemaProviderAttribute.cs
- FileDialog.cs
- WebPartsPersonalizationAuthorization.cs
- Point4D.cs
- CustomCredentialPolicy.cs
- XslTransform.cs
- BitmapEffectGroup.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ProxyWebPart.cs
- KeyValuePairs.cs
- VideoDrawing.cs
- HttpHandlerActionCollection.cs
- _BaseOverlappedAsyncResult.cs
- ToolStripLocationCancelEventArgs.cs
- IRCollection.cs
- CodeIndexerExpression.cs
- EnvironmentPermission.cs
- X509ThumbprintKeyIdentifierClause.cs
- PackWebResponse.cs
- LogAppendAsyncResult.cs
- ComAdminInterfaces.cs
- DependencyPropertyAttribute.cs
- UTF32Encoding.cs
- Ref.cs
- Light.cs
- DataBindingCollection.cs
- TextDecorationUnitValidation.cs
- RuntimeHelpers.cs
- BlobPersonalizationState.cs
- BigInt.cs
- ToolStripScrollButton.cs
- X509AsymmetricSecurityKey.cs
- HtmlControlDesigner.cs
- EditorBrowsableAttribute.cs
- CompressEmulationStream.cs
- ConfigUtil.cs
- DirectionalLight.cs
- CodeGroup.cs
- UrlMappingsSection.cs
- TabletDeviceInfo.cs
- AssociationTypeEmitter.cs
- SqlException.cs
- RegionInfo.cs
- ServerType.cs
- OdbcConnectionHandle.cs
- thaishape.cs
- ToolStripComboBox.cs
- UriExt.cs
- XmlCompatibilityReader.cs
- PhysicalAddress.cs
- ExplicitDiscriminatorMap.cs
- ObservableCollection.cs
- WinHttpWebProxyFinder.cs
- MessageQueueConverter.cs
- PeerName.cs
- compensatingcollection.cs
- ElapsedEventArgs.cs
- HotCommands.cs
- PageHandlerFactory.cs
- DataSourceComponent.cs
- FontInfo.cs
- CommandSet.cs
- Assembly.cs
- Directory.cs
- AxImporter.cs
- MatrixKeyFrameCollection.cs
- XmlIgnoreAttribute.cs
- DetailsViewPagerRow.cs
- EditorPartCollection.cs
- HttpDebugHandler.cs