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
- LineMetrics.cs
- PriorityItem.cs
- Filter.cs
- DependencyObjectProvider.cs
- TextProviderWrapper.cs
- TreeNodeBinding.cs
- ApplicationServiceManager.cs
- FileDialogCustomPlace.cs
- EnumBuilder.cs
- ExceptionAggregator.cs
- ProfileBuildProvider.cs
- SqlTransaction.cs
- DrawingContextWalker.cs
- XmlSchemaComplexContent.cs
- DataGridViewLinkCell.cs
- JavaScriptSerializer.cs
- DefaultValidator.cs
- PolicyValidationException.cs
- SortedList.cs
- XPathPatternParser.cs
- WebConfigurationFileMap.cs
- ConditionalExpression.cs
- TransformerInfoCollection.cs
- AssemblyCollection.cs
- XomlDesignerLoader.cs
- IMembershipProvider.cs
- ITextView.cs
- XmlAttributeHolder.cs
- RewritingProcessor.cs
- InputScopeManager.cs
- XmlFormatExtensionAttribute.cs
- Stack.cs
- EdmScalarPropertyAttribute.cs
- PartialList.cs
- PageAdapter.cs
- MaskedTextBox.cs
- GifBitmapDecoder.cs
- ReadOnlyDataSourceView.cs
- Help.cs
- ActiveXSite.cs
- XmlSchemaSimpleContentExtension.cs
- ParseChildrenAsPropertiesAttribute.cs
- ConstrainedGroup.cs
- AppLevelCompilationSectionCache.cs
- ConfigurationElementProperty.cs
- HostedTransportConfigurationManager.cs
- XappLauncher.cs
- ObjectReferenceStack.cs
- MatrixTransform3D.cs
- InternalSafeNativeMethods.cs
- SecurityContextTokenCache.cs
- BCryptSafeHandles.cs
- HtmlImage.cs
- ProfilePropertyMetadata.cs
- UsernameTokenFactoryCredential.cs
- SlipBehavior.cs
- FactoryMaker.cs
- HierarchicalDataBoundControl.cs
- SQLDecimal.cs
- NamedPipeProcessProtocolHandler.cs
- ApplicationProxyInternal.cs
- JsonDeserializer.cs
- WaitHandleCannotBeOpenedException.cs
- InvalidPropValue.cs
- _IPv4Address.cs
- EntityDataSourceColumn.cs
- Pair.cs
- x509store.cs
- UIPermission.cs
- SizeValueSerializer.cs
- QuaternionRotation3D.cs
- OdbcCommandBuilder.cs
- ConnectionManagementSection.cs
- ResourceSet.cs
- DataColumnPropertyDescriptor.cs
- EllipseGeometry.cs
- DiscoveryClientChannelBase.cs
- MemberInfoSerializationHolder.cs
- PolyBezierSegment.cs
- GetRecipientRequest.cs
- PrintDialog.cs
- BulletedList.cs
- ErrorWebPart.cs
- SystemIPGlobalStatistics.cs
- NameNode.cs
- SchemaObjectWriter.cs
- LinkLabelLinkClickedEvent.cs
- WeakReferenceKey.cs
- DataChangedEventManager.cs
- DbMetaDataFactory.cs
- DocumentPage.cs
- ProgressPage.cs
- TdsParserHelperClasses.cs
- AdjustableArrowCap.cs
- TCEAdapterGenerator.cs
- EntityContainer.cs
- ConfigPathUtility.cs
- ResponseStream.cs
- ImageSourceValueSerializer.cs
- DnsPermission.cs