Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / Baml2006 / WpfSharedXamlSchemaContext.cs / 1305600 / WpfSharedXamlSchemaContext.cs
using System; using System.Collections.Generic; using System.Text; using System.Xaml; namespace System.Windows.Baml2006 { ////// This schema context is shared between all the WPF XAML loads in an AppDomain, including both /// full and partial trust callers. To be safe for sharing, it must be idempotent and order-independent. /// See the SecurityNote on XamlSchemaContext for more details. /// internal class WpfSharedXamlSchemaContext : WpfSharedBamlSchemaContext { // V3 Rules are: // Simple Collection rules: We only lookup IList & IDictionary (no add methods) (The MarkupCompiler doesn't support this) // No Deferring Loader lookup on XamlMember (The MarkupCompiler doesn't support this) public WpfSharedXamlSchemaContext(XamlSchemaContextSettings settings, bool useV3Rules) : base(settings) { _useV3Rules = useV3Rules; } public override XamlType GetXamlType(Type type) { if (type == null) { throw new ArgumentNullException("type"); } XamlType xType; lock (_syncObject) { if (!_masterTypeTable.TryGetValue(type, out xType)) { RequireRuntimeType(type); xType = CreateKnownBamlType(type.Name, false, _useV3Rules); if (xType == null || xType.UnderlyingType != type) { xType = new WpfXamlType(type, this, false /* isBamlType */, _useV3Rules); } _masterTypeTable.Add(type, xType); } } return xType; } internal static void RequireRuntimeType(Type type) { // To avoid injection of derived System.Types that lie about their identity // (and spoof other types), only allow RuntimeTypes. // S.W.M.XamlReader only supports live reflection, anyway. Type runtimeType = typeof(object).GetType(); if (!runtimeType.IsAssignableFrom(type.GetType())) { throw new ArgumentException(SR.Get(SRID.RuntimeTypeRequired, type), "type"); } } // Allow wrapping SchemaContexts a way to call into the protected overload of GetXamlType internal XamlType GetXamlTypeInternal(string xamlNamespace, string name, params XamlType[] typeArguments) { return base.GetXamlType(xamlNamespace, name, typeArguments); } private Dictionary_masterTypeTable = new Dictionary (); private object _syncObject = new Object(); private bool _useV3Rules; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValuePattern.cs
- DataObjectFieldAttribute.cs
- SqlCaseSimplifier.cs
- BinHexDecoder.cs
- TabControl.cs
- XsltInput.cs
- Constants.cs
- TextSpan.cs
- ClientFormsAuthenticationCredentials.cs
- ObjectQueryExecutionPlan.cs
- Certificate.cs
- DataGridViewBindingCompleteEventArgs.cs
- ETagAttribute.cs
- FaultFormatter.cs
- GeneralTransformGroup.cs
- ClientRuntime.cs
- StreamInfo.cs
- util.cs
- BuildResultCache.cs
- FamilyTypefaceCollection.cs
- ServiceOperationParameter.cs
- Stylesheet.cs
- AuthenticateEventArgs.cs
- StringToken.cs
- MembershipSection.cs
- RPIdentityRequirement.cs
- TextDecorationCollection.cs
- WeakReferenceEnumerator.cs
- Query.cs
- StrokeCollectionDefaultValueFactory.cs
- _SSPISessionCache.cs
- FrameworkElementFactory.cs
- EventSource.cs
- EnumType.cs
- ServiceOperationDetailViewControl.cs
- DateTime.cs
- BlobPersonalizationState.cs
- Iis7Helper.cs
- ThemeDirectoryCompiler.cs
- ToolStripDropDownButton.cs
- XmlTextEncoder.cs
- ProjectionPlanCompiler.cs
- ArglessEventHandlerProxy.cs
- SchemaCollectionCompiler.cs
- basecomparevalidator.cs
- DefaultMemberAttribute.cs
- X509CertificateTokenFactoryCredential.cs
- RegexCompiler.cs
- DynamicHyperLink.cs
- ComponentChangingEvent.cs
- TemplateContent.cs
- MaterializeFromAtom.cs
- DiscoveryClientDocuments.cs
- WebControlParameterProxy.cs
- PermissionListSet.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- DirectoryInfo.cs
- DataBindingHandlerAttribute.cs
- StyleCollectionEditor.cs
- TextBoxView.cs
- ChtmlTextWriter.cs
- TextRange.cs
- RijndaelCryptoServiceProvider.cs
- Int32AnimationBase.cs
- ContextMarshalException.cs
- BuildManagerHost.cs
- ConfigXmlSignificantWhitespace.cs
- ExportFileRequest.cs
- PageParser.cs
- RTLAwareMessageBox.cs
- DockPatternIdentifiers.cs
- SoapFormatterSinks.cs
- PolyQuadraticBezierSegment.cs
- MDIControlStrip.cs
- WebPartsSection.cs
- WebMessageBodyStyleHelper.cs
- RecordsAffectedEventArgs.cs
- SymmetricSecurityProtocol.cs
- DetailsViewCommandEventArgs.cs
- DataGridViewDataErrorEventArgs.cs
- UnsafeNativeMethods.cs
- PageHandlerFactory.cs
- ReadOnlyCollectionBase.cs
- DefaultAsyncDataDispatcher.cs
- LongTypeConverter.cs
- SqlDataRecord.cs
- SubclassTypeValidator.cs
- ClientCredentialsSecurityTokenManager.cs
- Win32.cs
- MetadataItemSerializer.cs
- SynchronizationContext.cs
- DashStyles.cs
- SamlAudienceRestrictionCondition.cs
- ExtenderProviderService.cs
- ActiveDocumentEvent.cs
- remotingproxy.cs
- MutexSecurity.cs
- SafeProcessHandle.cs
- PeerCollaboration.cs
- GradientBrush.cs