Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Markup / ProvideValueServiceProvider.cs / 1 / ProvideValueServiceProvider.cs
/****************************************************************************\ * * File: ProvideValueServiceProvider.cs * * ServiceProvider class that is passed into MarkupExtensions.ProvideValue method * that understands the ParserContext. * * Copyright (C) 2006 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Windows; using System.Windows.Media; using System.Diagnostics; namespace System.Windows.Markup { ////// Base class for all Xaml markup extensions. /// internal class ProvideValueServiceProvider : IServiceProvider, IProvideValueTarget, IBamlReader, IXamlTypeResolver, IUriContext, IFreezeFreezables { // Construction internal ProvideValueServiceProvider(ParserContext context) { _context = context; } internal ProvideValueServiceProvider() { } // Set the TargetObject/Property (for use by IProvideValueTarget). internal void SetData(object targetObject, object targetProperty) { _targetObject = targetObject; _targetProperty = targetProperty; } // Clear the TargetObject/Property (after a call to ProvideValue) internal void ClearData() { _targetObject = _targetProperty = null; } // IXamlTypeResolver implementation Type IXamlTypeResolver.Resolve(string qualifiedTypeName) // E.g. foo:Class { return _context.XamlTypeMapper.GetTypeFromBaseString(qualifiedTypeName, _context, true); } // IBamlReader implementation BamlRecordReader IBamlReader.GetBamlReader() { return _context.BamlReader; } // IProvideValueTarget implementation object IProvideValueTarget.TargetObject { get { return _targetObject; } } object IProvideValueTarget.TargetProperty { get { return _targetProperty; } } // IUriContext implementation Uri IUriContext.BaseUri { get { return _context.BaseUri; } set { throw new NotSupportedException(SR.Get(SRID.ParserProvideValueCantSetUri)); } } bool IFreezeFreezables.FreezeFreezables { get { return _context.FreezeFreezables; } } bool IFreezeFreezables.TryFreeze(string value, Freezable freezable) { return _context.TryCacheFreezable(value, freezable); } Freezable IFreezeFreezables.TryGetFreezable(string value) { return _context.TryGetFreezable(value); } // IServiceProvider implementation (this is the way to get to the // above interface implementations). public object GetService(Type service) { // IProvideValueTarget is the only implementation that // doesn't need the ParserContext if( service == typeof(IProvideValueTarget)) { return this as IProvideValueTarget; } if( _context != null ) { if( service == typeof(IXamlTypeResolver)) { return this as IXamlTypeResolver; } else if( service == typeof(IUriContext)) { return this as IUriContext; } else if( service == typeof(IBamlReader)) { return this as IBamlReader; } else if (service == typeof(IFreezeFreezables)) { return this as IFreezeFreezables; } } return null; } // Data private ParserContext _context = null; private object _targetObject = null; private object _targetProperty = null; } } // 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
- TemplateControlBuildProvider.cs
- HScrollProperties.cs
- EventToken.cs
- FilterQuery.cs
- CompleteWizardStep.cs
- MultiSelectRootGridEntry.cs
- WindowCollection.cs
- tooltip.cs
- ControlHelper.cs
- WebRequest.cs
- StylusButton.cs
- ToolboxSnapDragDropEventArgs.cs
- InstanceOwnerQueryResult.cs
- SecurityManager.cs
- ConversionContext.cs
- CroppedBitmap.cs
- DBAsyncResult.cs
- SeparatorAutomationPeer.cs
- CryptoKeySecurity.cs
- MethodBuilderInstantiation.cs
- FormattedText.cs
- DecoratedNameAttribute.cs
- WebEvents.cs
- HttpContextServiceHost.cs
- HtmlControl.cs
- _SSPIWrapper.cs
- relpropertyhelper.cs
- Utils.cs
- FieldValue.cs
- ClientSettingsSection.cs
- OutputCacheSection.cs
- ControlCachePolicy.cs
- MailMessageEventArgs.cs
- OleDbCommand.cs
- AuthStoreRoleProvider.cs
- ServicePointManagerElement.cs
- TemplateColumn.cs
- InkCollectionBehavior.cs
- XmlAnyAttributeAttribute.cs
- XmlSchemaAppInfo.cs
- WeakRefEnumerator.cs
- CatchBlock.cs
- SimpleWebHandlerParser.cs
- RestHandlerFactory.cs
- StrokeSerializer.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- FieldToken.cs
- AlignmentXValidation.cs
- ProfessionalColors.cs
- LockCookie.cs
- DisplayNameAttribute.cs
- ThicknessAnimation.cs
- TypedReference.cs
- TypeUsage.cs
- ExpressionBinding.cs
- SiblingIterators.cs
- DoubleCollectionConverter.cs
- SingleTagSectionHandler.cs
- SessionEndedEventArgs.cs
- CacheEntry.cs
- httpserverutility.cs
- ThemeableAttribute.cs
- ConfigurationStrings.cs
- SkewTransform.cs
- RC2.cs
- Quaternion.cs
- MinimizableAttributeTypeConverter.cs
- RootDesignerSerializerAttribute.cs
- InkCanvasSelectionAdorner.cs
- XmlQualifiedName.cs
- ListViewInsertedEventArgs.cs
- TextViewSelectionProcessor.cs
- JoinSymbol.cs
- SQLByte.cs
- WasEndpointConfigContainer.cs
- IfElseDesigner.xaml.cs
- CatalogPartCollection.cs
- BlurBitmapEffect.cs
- PointAnimationUsingPath.cs
- FaultPropagationRecord.cs
- EditingScopeUndoUnit.cs
- PartitionedStream.cs
- SecurityContext.cs
- HandoffBehavior.cs
- UshortList2.cs
- ThreadAttributes.cs
- ServicesUtilities.cs
- PaperSource.cs
- PropertyManager.cs
- MessageVersion.cs
- SrgsGrammarCompiler.cs
- PerformanceCounterLib.cs
- SqlNotificationRequest.cs
- ObjectListComponentEditor.cs
- ObjectStateFormatter.cs
- securitymgrsite.cs
- GroupBoxAutomationPeer.cs
- PersistenceException.cs
- HttpCachePolicyElement.cs
- ResourceReferenceExpression.cs