Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Serialization / XmlSerializerFactory.cs / 1305376 / 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); } ///[To be supplied.] ////// /// public XmlSerializer CreateSerializer(Type type, XmlRootAttribute root) { return CreateSerializer(type, null, new Type[0], root, null, null); } ///[To be supplied.] ////// /// public XmlSerializer CreateSerializer(Type type, Type[] extraTypes) { return CreateSerializer(type, null, extraTypes, null, null, null); } ///[To be supplied.] ////// /// public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides) { return CreateSerializer(type, overrides, new Type[0], 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); } public XmlSerializer CreateSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location) { #pragma warning disable 618 // Passing through null evidence to centralize the CreateSerializer implementation return CreateSerializer(type, overrides, extraTypes, root, defaultNamespace, location, null); #pragma warning restore 618 } ///[To be supplied.] ////// /// [Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateSerializer which does not take an Evidence parameter. See http://go2.microsoft.com/fwlink/?LinkId=131738 for more information.")] 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.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsListViewItem.cs
- XhtmlBasicValidationSummaryAdapter.cs
- AutomationAttributeInfo.cs
- XsltArgumentList.cs
- ZipIOModeEnforcingStream.cs
- MultiDataTrigger.cs
- FunctionCommandText.cs
- LinqTreeNodeEvaluator.cs
- SafeTimerHandle.cs
- IItemContainerGenerator.cs
- TagMapCollection.cs
- PreservationFileReader.cs
- SoapObjectReader.cs
- SizeConverter.cs
- SchemaCollectionPreprocessor.cs
- StrongName.cs
- NotImplementedException.cs
- NamespaceEmitter.cs
- KnownIds.cs
- InternalsVisibleToAttribute.cs
- WorkflowQueueInfo.cs
- SQLDecimalStorage.cs
- Int32CollectionValueSerializer.cs
- AlternationConverter.cs
- CodePageEncoding.cs
- DataMemberFieldConverter.cs
- HMACRIPEMD160.cs
- QueryPageSettingsEventArgs.cs
- regiisutil.cs
- GrammarBuilderRuleRef.cs
- FixedSchema.cs
- CorrelationKey.cs
- Hex.cs
- Animatable.cs
- OdbcReferenceCollection.cs
- RefExpr.cs
- HttpCachePolicyElement.cs
- PtsHost.cs
- EastAsianLunisolarCalendar.cs
- ReferencedCollectionType.cs
- XPathDocument.cs
- EventLog.cs
- DateTimeUtil.cs
- Control.cs
- EventSetter.cs
- ICspAsymmetricAlgorithm.cs
- SecondaryIndex.cs
- ProtectedConfiguration.cs
- CodeTypeConstructor.cs
- BinaryWriter.cs
- AttributeAction.cs
- NameService.cs
- WindowsComboBox.cs
- SelectedDatesCollection.cs
- TwoPhaseCommit.cs
- ExtensionSimplifierMarkupObject.cs
- RegexCaptureCollection.cs
- NamedPipeHostedTransportConfiguration.cs
- ScrollContentPresenter.cs
- DropShadowBitmapEffect.cs
- shaperfactoryquerycachekey.cs
- PixelFormatConverter.cs
- ConstNode.cs
- QilLiteral.cs
- ResourceDisplayNameAttribute.cs
- BulletedListEventArgs.cs
- StrokeCollection.cs
- OrderedDictionary.cs
- SingleConverter.cs
- DeclaredTypeElementCollection.cs
- FocusWithinProperty.cs
- RadialGradientBrush.cs
- Win32SafeHandles.cs
- MediaElementAutomationPeer.cs
- ProviderSettingsCollection.cs
- ManifestResourceInfo.cs
- StringPropertyBuilder.cs
- SpeechRecognitionEngine.cs
- GridViewCancelEditEventArgs.cs
- DataGridViewLinkColumn.cs
- ExceptionCollection.cs
- MULTI_QI.cs
- WebPartDisplayModeCollection.cs
- XamlReader.cs
- CodeStatement.cs
- QilPatternFactory.cs
- WebPart.cs
- DummyDataSource.cs
- CallTemplateAction.cs
- ValueUtilsSmi.cs
- TreeNodeMouseHoverEvent.cs
- ReflectEventDescriptor.cs
- LocatorManager.cs
- DataServiceHostWrapper.cs
- UpdateEventArgs.cs
- DataGridHeaderBorder.cs
- StringTraceRecord.cs
- SplashScreen.cs
- Effect.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs