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
- DSASignatureFormatter.cs
- XmlExtensionFunction.cs
- SoapServerMethod.cs
- FilteredReadOnlyMetadataCollection.cs
- ManipulationDevice.cs
- RewritingValidator.cs
- AddIn.cs
- BaseCollection.cs
- ScrollItemProviderWrapper.cs
- unsafenativemethodsother.cs
- SuppressMessageAttribute.cs
- WinFormsUtils.cs
- safePerfProviderHandle.cs
- PEFileEvidenceFactory.cs
- SettingsPropertyCollection.cs
- Matrix3DConverter.cs
- SymDocumentType.cs
- ExtendedProtectionPolicyElement.cs
- XmlBufferReader.cs
- AlphabeticalEnumConverter.cs
- DynamicDataResources.Designer.cs
- DelegateOutArgument.cs
- MarshalByValueComponent.cs
- Typography.cs
- PowerEase.cs
- DocumentPageView.cs
- SafeTimerHandle.cs
- TransformCryptoHandle.cs
- ProcessHostConfigUtils.cs
- filewebrequest.cs
- DragSelectionMessageFilter.cs
- BindingExpression.cs
- SponsorHelper.cs
- MenuCommandService.cs
- ByteStream.cs
- RtfToXamlReader.cs
- DataRowChangeEvent.cs
- CngProvider.cs
- Rect3D.cs
- HtmlInputHidden.cs
- SqlBuffer.cs
- XmlDesigner.cs
- ReturnValue.cs
- Model3DGroup.cs
- SyndicationSerializer.cs
- PasswordTextContainer.cs
- FrameAutomationPeer.cs
- WebConfigurationHost.cs
- Variant.cs
- ResourceDefaultValueAttribute.cs
- HttpInputStream.cs
- OracleNumber.cs
- SmtpMail.cs
- KoreanLunisolarCalendar.cs
- RewritingProcessor.cs
- QilCloneVisitor.cs
- ListenerConnectionDemuxer.cs
- TextTreeTextNode.cs
- AdapterUtil.cs
- ToolStripControlHost.cs
- FusionWrap.cs
- PoisonMessageException.cs
- BitmapEffectInput.cs
- ErrorHandlerModule.cs
- CommonDialog.cs
- InitialServerConnectionReader.cs
- SqlDataReaderSmi.cs
- ScrollData.cs
- StorageAssociationSetMapping.cs
- DbConnectionStringBuilder.cs
- NavigationHelper.cs
- BufferBuilder.cs
- ExecutionEngineException.cs
- CharacterString.cs
- UpdateCompiler.cs
- BitmapFrameEncode.cs
- CfgParser.cs
- ModelItem.cs
- ResourceReferenceExpressionConverter.cs
- HtmlProps.cs
- EntityDataReader.cs
- Listbox.cs
- ApplicationServiceManager.cs
- FloaterParagraph.cs
- ShadowGlyph.cs
- CompositeScriptReferenceEventArgs.cs
- UriScheme.cs
- LinkButton.cs
- DoubleCollectionValueSerializer.cs
- FunctionUpdateCommand.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- mansign.cs
- AutomationPropertyInfo.cs
- BamlRecordWriter.cs
- Queue.cs
- ObjectSecurity.cs
- XPathDocumentBuilder.cs
- GenericRootAutomationPeer.cs
- CrossAppDomainChannel.cs
- SemanticValue.cs