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
- ToolStripItemEventArgs.cs
- ExpandSegment.cs
- ServicePoint.cs
- FormatStringEditor.cs
- SamlAuthorityBinding.cs
- _StreamFramer.cs
- DbParameterHelper.cs
- ConfigurationValue.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- XmlAnyElementAttribute.cs
- DateTimeUtil.cs
- ProcessHostServerConfig.cs
- ValidationErrorInfo.cs
- ColumnCollection.cs
- ExternalFile.cs
- WhitespaceRule.cs
- SevenBitStream.cs
- ToolStripTemplateNode.cs
- ListSortDescriptionCollection.cs
- Point3DAnimation.cs
- ExpressionHelper.cs
- CompilationUtil.cs
- OverflowException.cs
- ModuleConfigurationInfo.cs
- TileModeValidation.cs
- RemotingClientProxy.cs
- UriSection.cs
- SpecularMaterial.cs
- KeyToListMap.cs
- PathSegment.cs
- FormParameter.cs
- PropertyGridView.cs
- MimeTextImporter.cs
- EntityViewGenerator.cs
- DefaultPropertiesToSend.cs
- SwitchAttribute.cs
- List.cs
- ClientSponsor.cs
- TextInfo.cs
- ExpressionBuilder.cs
- Rfc4050KeyFormatter.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- ServiceDeploymentInfo.cs
- PeerEndPoint.cs
- BitVector32.cs
- AccessKeyManager.cs
- BaseProcessor.cs
- translator.cs
- OutputCacheProfile.cs
- MessageBodyMemberAttribute.cs
- AsymmetricSignatureFormatter.cs
- OwnerDrawPropertyBag.cs
- WsatEtwTraceListener.cs
- ObservableDictionary.cs
- MachineKeyConverter.cs
- Splitter.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- ToolBarButtonClickEvent.cs
- CollectionViewSource.cs
- MdImport.cs
- Literal.cs
- LazyTextWriterCreator.cs
- itemelement.cs
- XamlToRtfWriter.cs
- FilterRepeater.cs
- InstallHelper.cs
- AbsoluteQuery.cs
- MemoryRecordBuffer.cs
- MarkupObject.cs
- Type.cs
- WinInet.cs
- XmlSerializerObjectSerializer.cs
- unsafeIndexingFilterStream.cs
- BindingNavigatorDesigner.cs
- AtomServiceDocumentSerializer.cs
- BadImageFormatException.cs
- DataSetUtil.cs
- DoubleLink.cs
- newinstructionaction.cs
- HttpServerVarsCollection.cs
- DependencyProperty.cs
- CachingHintValidation.cs
- Pts.cs
- Transform3DGroup.cs
- QueryOpeningEnumerator.cs
- PermissionRequestEvidence.cs
- OpCellTreeNode.cs
- RoleServiceManager.cs
- ProxyWebPartManager.cs
- ExtensionSimplifierMarkupObject.cs
- TraceInternal.cs
- FilterRepeater.cs
- AuthorizationPolicyTypeElementCollection.cs
- ConcurrentBag.cs
- UrlMappingsSection.cs
- WebPartChrome.cs
- XPathBinder.cs
- BamlRecords.cs
- MarkupWriter.cs
- IdentityModelDictionary.cs