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
- DockPanel.cs
- ConnectionProviderAttribute.cs
- WinFormsUtils.cs
- ResXResourceWriter.cs
- RectAnimationUsingKeyFrames.cs
- TranslateTransform.cs
- ImageMapEventArgs.cs
- UIInitializationException.cs
- XamlInt32CollectionSerializer.cs
- ContextStaticAttribute.cs
- EntityClassGenerator.cs
- SpotLight.cs
- Literal.cs
- CellIdBoolean.cs
- InputScope.cs
- ThreadSafeList.cs
- RuleSet.cs
- TimeSpan.cs
- nulltextnavigator.cs
- CatalogPartCollection.cs
- XmlSchemaObject.cs
- TokenCreationException.cs
- SQLInt64.cs
- SafeLocalAllocation.cs
- ResourceDefaultValueAttribute.cs
- ShutDownListener.cs
- SiteIdentityPermission.cs
- FieldTemplateFactory.cs
- XmlSchemaSubstitutionGroup.cs
- EmulateRecognizeCompletedEventArgs.cs
- FormatConvertedBitmap.cs
- XmlValidatingReaderImpl.cs
- HttpListenerException.cs
- DBCSCodePageEncoding.cs
- AQNBuilder.cs
- PageFunction.cs
- _UriSyntax.cs
- BooleanFunctions.cs
- ButtonFlatAdapter.cs
- DataContext.cs
- ClientUtils.cs
- ObjectParameterCollection.cs
- KeyEventArgs.cs
- XmlNamedNodeMap.cs
- TemplateControlBuildProvider.cs
- StructuredTypeEmitter.cs
- printdlgexmarshaler.cs
- CatalogZoneBase.cs
- WebPartConnectionsConfigureVerb.cs
- DispatcherExceptionFilterEventArgs.cs
- SmtpClient.cs
- DesignerDataColumn.cs
- Soap.cs
- ProviderBase.cs
- HttpCacheParams.cs
- UIElement3D.cs
- GlyphTypeface.cs
- StandardOleMarshalObject.cs
- TextModifier.cs
- XmlExceptionHelper.cs
- QuaternionAnimationBase.cs
- CaretElement.cs
- MultiTrigger.cs
- _ConnectStream.cs
- SchemaTableOptionalColumn.cs
- DrawListViewSubItemEventArgs.cs
- MultilineStringConverter.cs
- CharacterString.cs
- HitTestDrawingContextWalker.cs
- OutOfProcStateClientManager.cs
- Sorting.cs
- StringFunctions.cs
- invalidudtexception.cs
- DbFunctionCommandTree.cs
- Debug.cs
- PerformanceCounterPermissionEntryCollection.cs
- SiteMapHierarchicalDataSourceView.cs
- FamilyCollection.cs
- _DisconnectOverlappedAsyncResult.cs
- ExceptionList.cs
- WebPartMovingEventArgs.cs
- SafeReadContext.cs
- DescendantBaseQuery.cs
- RestHandlerFactory.cs
- CallbackWrapper.cs
- SoapWriter.cs
- XsltConvert.cs
- TypeListConverter.cs
- MembershipSection.cs
- Transform3D.cs
- mediaeventargs.cs
- MessagePropertyDescription.cs
- MatrixAnimationUsingKeyFrames.cs
- CommandSet.cs
- QueryRewriter.cs
- SourceChangedEventArgs.cs
- XmlNodeReader.cs
- HTMLTagNameToTypeMapper.cs
- SizeAnimationClockResource.cs
- DrawListViewSubItemEventArgs.cs