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
- MatrixTransform3D.cs
- UniqueSet.cs
- HtmlInputRadioButton.cs
- ActivityInterfaces.cs
- XmlNodeChangedEventArgs.cs
- SolidBrush.cs
- WsatServiceCertificate.cs
- InputElement.cs
- NavigationProgressEventArgs.cs
- MeshGeometry3D.cs
- DefaultValueConverter.cs
- OptimizedTemplateContentHelper.cs
- ReachDocumentReferenceSerializerAsync.cs
- MetadataCacheItem.cs
- WebPartDeleteVerb.cs
- ScriptingScriptResourceHandlerSection.cs
- SafeFileMappingHandle.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- EnterpriseServicesHelper.cs
- BaseValidator.cs
- ReachUIElementCollectionSerializerAsync.cs
- XmlHierarchyData.cs
- IPipelineRuntime.cs
- DllNotFoundException.cs
- Mapping.cs
- NodeCounter.cs
- MailFileEditor.cs
- CollectionConverter.cs
- OleDbConnectionInternal.cs
- CodeParameterDeclarationExpression.cs
- UIElement.cs
- CallbackHandler.cs
- WSDualHttpSecurityElement.cs
- FontStretchConverter.cs
- EncryptedPackageFilter.cs
- Visual.cs
- Behavior.cs
- ItemsPanelTemplate.cs
- GenericUriParser.cs
- EventMap.cs
- FilteredAttributeCollection.cs
- ResXDataNode.cs
- SvcMapFileSerializer.cs
- UpdateProgress.cs
- LineMetrics.cs
- ServiceContractViewControl.cs
- WebProxyScriptElement.cs
- Type.cs
- NativeMethods.cs
- NetworkStream.cs
- DependencyPropertyChangedEventArgs.cs
- RTLAwareMessageBox.cs
- __Filters.cs
- WindowsTokenRoleProvider.cs
- Bidi.cs
- CodeDelegateInvokeExpression.cs
- VarRefManager.cs
- ActivityTypeResolver.xaml.cs
- TrackingMemoryStreamFactory.cs
- PaintValueEventArgs.cs
- RectConverter.cs
- WebPartTransformer.cs
- WindowsTooltip.cs
- SettingsPropertyIsReadOnlyException.cs
- PointLightBase.cs
- FieldCollectionEditor.cs
- VectorCollectionValueSerializer.cs
- ObjectCacheHost.cs
- HybridDictionary.cs
- SecurityPermission.cs
- Int32Animation.cs
- FocusChangedEventArgs.cs
- Image.cs
- UnsafeNativeMethodsPenimc.cs
- _SSPIWrapper.cs
- SqlBulkCopyColumnMapping.cs
- NotifyParentPropertyAttribute.cs
- MemberDomainMap.cs
- SmiConnection.cs
- ProgressBarBrushConverter.cs
- RuntimeResourceSet.cs
- ResourceCategoryAttribute.cs
- HotSpot.cs
- TextElementCollection.cs
- Activity.cs
- ProxyWebPartConnectionCollection.cs
- SkipStoryboardToFill.cs
- listitem.cs
- SqlFormatter.cs
- ChangePasswordDesigner.cs
- PackWebRequest.cs
- WindowShowOrOpenTracker.cs
- HttpCacheVary.cs
- SchemaElement.cs
- MatrixCamera.cs
- XmlSiteMapProvider.cs
- CompositeScriptReferenceEventArgs.cs
- ZipIOExtraFieldPaddingElement.cs
- NextPreviousPagerField.cs
- UnsafeNativeMethodsCLR.cs