Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Hosting / WorkflowInstanceExtensionProvider.cs / 1305376 / WorkflowInstanceExtensionProvider.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Hosting { using System.Runtime; abstract class WorkflowInstanceExtensionProvider { protected WorkflowInstanceExtensionProvider() { } public Type Type { get; protected set; } protected bool GeneratedTypeMatchesDeclaredType { get; set; } public abstract object ProvideValue(); public bool IsMatch(object value) where TTarget : class { Fx.Assert(value != null, "extension providers never return a null extension"); if (value is TTarget) { if (this.GeneratedTypeMatchesDeclaredType) { return true; } else { return TypeHelper.AreReferenceTypesCompatible(this.Type, typeof(TTarget)); } } else { return false; } } } class WorkflowInstanceExtensionProvider : WorkflowInstanceExtensionProvider where T : class { Func providerFunction; bool hasGeneratedValue; public WorkflowInstanceExtensionProvider(Func providerFunction) : base() { this.providerFunction = providerFunction; base.Type = typeof(T); } public override object ProvideValue() { T value = this.providerFunction(); if (!this.hasGeneratedValue) { base.GeneratedTypeMatchesDeclaredType = object.ReferenceEquals(value.GetType(), this.Type); this.hasGeneratedValue = true; } return value; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MailWriter.cs
- ImageFormatConverter.cs
- Vector3DValueSerializer.cs
- glyphs.cs
- Propagator.ExtentPlaceholderCreator.cs
- QfeChecker.cs
- ToolStripItemTextRenderEventArgs.cs
- ADConnectionHelper.cs
- Stylus.cs
- _Connection.cs
- ComAdminInterfaces.cs
- SymbolType.cs
- MultiAsyncResult.cs
- ProxyWebPartConnectionCollection.cs
- ExpressionBindingsDialog.cs
- ListViewUpdateEventArgs.cs
- _ConnectOverlappedAsyncResult.cs
- CommandID.cs
- ListViewItemMouseHoverEvent.cs
- Guid.cs
- TriggerBase.cs
- InfoCardAsymmetricCrypto.cs
- HTMLTextWriter.cs
- DelegatedStream.cs
- ParameterCollection.cs
- SqlClientWrapperSmiStreamChars.cs
- DataGrid.cs
- FocusManager.cs
- AxWrapperGen.cs
- DataGridViewColumnHeaderCell.cs
- _ListenerResponseStream.cs
- SchemaComplexType.cs
- ResourcesBuildProvider.cs
- TableDetailsCollection.cs
- GridViewUpdatedEventArgs.cs
- DispatcherExceptionEventArgs.cs
- HttpPostedFileWrapper.cs
- RijndaelManagedTransform.cs
- _AutoWebProxyScriptEngine.cs
- HtmlInputButton.cs
- RegexMatch.cs
- TemplateBindingExpression.cs
- GridViewUpdatedEventArgs.cs
- TickBar.cs
- BordersPage.cs
- SelectionGlyphBase.cs
- XmlSchemaNotation.cs
- GeneratedContractType.cs
- DataRowChangeEvent.cs
- _ListenerResponseStream.cs
- CodeTypeConstructor.cs
- EventWaitHandle.cs
- FilterElement.cs
- StylusPointPropertyId.cs
- SuppressMergeCheckAttribute.cs
- UrlMappingCollection.cs
- RowCache.cs
- EditingScopeUndoUnit.cs
- SQLMoney.cs
- TableParagraph.cs
- WriteableBitmap.cs
- StringSorter.cs
- SecurityTokenParametersEnumerable.cs
- SqlParameterCollection.cs
- RegexWriter.cs
- PropertyDescriptorCollection.cs
- AmbientValueAttribute.cs
- GeneralTransformGroup.cs
- DesignerExtenders.cs
- ProfileServiceManager.cs
- DynamicValidator.cs
- ExpressionDumper.cs
- UnsafeNativeMethods.cs
- StorageMappingItemLoader.cs
- VirtualizedItemProviderWrapper.cs
- IisTraceWebEventProvider.cs
- ValidationHelpers.cs
- TextWriter.cs
- DeferredTextReference.cs
- DataGridViewComponentPropertyGridSite.cs
- Themes.cs
- ItemCollection.cs
- DefaultPrintController.cs
- ObjectDataSourceView.cs
- IntranetCredentialPolicy.cs
- OwnerDrawPropertyBag.cs
- DetailsViewModeEventArgs.cs
- ToolStripDropDownItem.cs
- GB18030Encoding.cs
- OciLobLocator.cs
- WebPartEventArgs.cs
- ObjectListCommandsPage.cs
- XPathItem.cs
- WebPartCollection.cs
- Set.cs
- MinimizableAttributeTypeConverter.cs
- UIElement3DAutomationPeer.cs
- MiniMapControl.xaml.cs
- FixedTextBuilder.cs
- PostBackTrigger.cs