Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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
- ScrollItemProviderWrapper.cs
- ClosureBinding.cs
- EdmConstants.cs
- ThreadWorkerController.cs
- ExpressionLexer.cs
- AbsoluteQuery.cs
- HttpProfileBase.cs
- WebAdminConfigurationHelper.cs
- FontFamilyConverter.cs
- NullableBoolConverter.cs
- FontWeightConverter.cs
- GrammarBuilder.cs
- ProcessModule.cs
- IisTraceListener.cs
- DispatcherSynchronizationContext.cs
- CommentGlyph.cs
- WindowsMenu.cs
- Pen.cs
- LocalFileSettingsProvider.cs
- VisualStateGroup.cs
- FileStream.cs
- _NegotiateClient.cs
- BaseInfoTable.cs
- TextViewBase.cs
- UnionCqlBlock.cs
- Validator.cs
- CodeSnippetCompileUnit.cs
- FolderLevelBuildProvider.cs
- MediaContext.cs
- TransformedBitmap.cs
- ControlPaint.cs
- SqlConnectionManager.cs
- UserControlBuildProvider.cs
- ImageField.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DataControlFieldsEditor.cs
- FlowPosition.cs
- CategoryGridEntry.cs
- XmlQualifiedName.cs
- Transaction.cs
- DeclaredTypeValidatorAttribute.cs
- Clause.cs
- TypeUtil.cs
- HtmlElementCollection.cs
- Input.cs
- TableRowGroupCollection.cs
- EndpointDispatcher.cs
- StringArrayEditor.cs
- DiagnosticTrace.cs
- BinaryObjectReader.cs
- Range.cs
- WebPartTracker.cs
- RemoveStoryboard.cs
- SQLBytes.cs
- ServiceDescription.cs
- BamlLocalizationDictionary.cs
- TextServicesHost.cs
- X509Extension.cs
- WebUtility.cs
- TemplateControlBuildProvider.cs
- SymbolUsageManager.cs
- Peer.cs
- ArrayConverter.cs
- Math.cs
- BindingList.cs
- BindingBase.cs
- FontFamily.cs
- XmlCompatibilityReader.cs
- LinkAreaEditor.cs
- SiteMapDataSource.cs
- XmlTypeMapping.cs
- SizeConverter.cs
- Variant.cs
- base64Transforms.cs
- PasswordBox.cs
- StreamReader.cs
- DataGridHeaderBorder.cs
- SystemUdpStatistics.cs
- CacheMemory.cs
- RegexCode.cs
- CodeMethodInvokeExpression.cs
- SqlProviderUtilities.cs
- DataServiceProcessingPipelineEventArgs.cs
- SynchronizedDispatch.cs
- DataPagerFieldCollection.cs
- PatternMatchRules.cs
- CroppedBitmap.cs
- TabControl.cs
- recordstate.cs
- BitmapCodecInfoInternal.cs
- SamlAction.cs
- SafeIUnknown.cs
- OperationCanceledException.cs
- QilValidationVisitor.cs
- srgsitem.cs
- DbConnectionStringBuilder.cs
- Internal.cs
- SafeReversePInvokeHandle.cs
- DataTableReader.cs
- WindowsListView.cs