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
- securestring.cs
- QilNode.cs
- MarkedHighlightComponent.cs
- HyperlinkAutomationPeer.cs
- HttpRawResponse.cs
- SafeHandle.cs
- TextBoxLine.cs
- RequestCachePolicyConverter.cs
- FormatSettings.cs
- RtType.cs
- GroupStyle.cs
- SkinBuilder.cs
- AspNetSynchronizationContext.cs
- TranslateTransform3D.cs
- XmlFormatExtensionPointAttribute.cs
- MsmqHostedTransportConfiguration.cs
- OdbcException.cs
- TargetParameterCountException.cs
- RenderingEventArgs.cs
- UDPClient.cs
- PerspectiveCamera.cs
- SiteMapNodeItemEventArgs.cs
- GroupDescription.cs
- WebPartManager.cs
- XmlElementAttributes.cs
- FormViewUpdateEventArgs.cs
- FontDriver.cs
- FormView.cs
- TextRangeSerialization.cs
- SyntaxCheck.cs
- FieldBuilder.cs
- RoleServiceManager.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DescendantQuery.cs
- RemotingException.cs
- XmlNullResolver.cs
- ThemeableAttribute.cs
- KnownTypeHelper.cs
- CodeNamespaceImportCollection.cs
- ObjectQuery.cs
- DispatcherObject.cs
- ColumnResizeAdorner.cs
- WorkflowRuntimeSection.cs
- BrowsableAttribute.cs
- RightNameExpirationInfoPair.cs
- FolderBrowserDialog.cs
- ConstraintConverter.cs
- GetUserPreferenceRequest.cs
- BitmapEncoder.cs
- DEREncoding.cs
- SystemIPv6InterfaceProperties.cs
- CheckBox.cs
- SqlBulkCopyColumnMapping.cs
- ContainerVisual.cs
- PageCatalogPart.cs
- SharedPersonalizationStateInfo.cs
- ConfigXmlText.cs
- FontFamilyValueSerializer.cs
- TemplateBaseAction.cs
- DataKeyCollection.cs
- TextFragmentEngine.cs
- InternalConfigHost.cs
- LoadGrammarCompletedEventArgs.cs
- ValidatingPropertiesEventArgs.cs
- ResourceKey.cs
- Point4D.cs
- EpmTargetTree.cs
- RemoveStoryboard.cs
- DesignerToolStripControlHost.cs
- FlowLayout.cs
- SQLInt64Storage.cs
- NameValueCollection.cs
- HandoffBehavior.cs
- GroupBoxRenderer.cs
- CollectionChange.cs
- Vector3DConverter.cs
- HierarchicalDataBoundControlAdapter.cs
- HtmlInputFile.cs
- ObjectDisposedException.cs
- LogStore.cs
- StringOutput.cs
- FileEnumerator.cs
- OutputWindow.cs
- PersonalizationAdministration.cs
- SystemWebCachingSectionGroup.cs
- Cursor.cs
- PropertyTab.cs
- RuleSetDialog.Designer.cs
- Mappings.cs
- MethodBody.cs
- AttachInfo.cs
- unitconverter.cs
- LinqDataSourceHelper.cs
- DataColumnCollection.cs
- CacheAxisQuery.cs
- Stack.cs
- PageCatalogPart.cs
- XmlSchemaAll.cs
- ListSortDescriptionCollection.cs
- ExpressionEditor.cs