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
- MenuBase.cs
- WindowsPrincipal.cs
- AnnotationComponentChooser.cs
- SecureUICommand.cs
- MemberCollection.cs
- SetterTriggerConditionValueConverter.cs
- Menu.cs
- FixedDocument.cs
- NotifyCollectionChangedEventArgs.cs
- WebPartEditorApplyVerb.cs
- WebPartCatalogAddVerb.cs
- XmlDataLoader.cs
- PenThreadPool.cs
- CaseInsensitiveComparer.cs
- BufferModeSettings.cs
- ContentType.cs
- DataColumnChangeEvent.cs
- DummyDataSource.cs
- SourceFileInfo.cs
- WrapPanel.cs
- PrePrepareMethodAttribute.cs
- CacheRequest.cs
- UserNamePasswordServiceCredential.cs
- ImageSource.cs
- PipelineModuleStepContainer.cs
- MinimizableAttributeTypeConverter.cs
- _HTTPDateParse.cs
- NameValueSectionHandler.cs
- InteropEnvironment.cs
- WebConfigurationFileMap.cs
- RecordBuilder.cs
- SQLBytesStorage.cs
- AppSettingsExpressionBuilder.cs
- _NegoState.cs
- EncoderNLS.cs
- XmlSchemaAnnotation.cs
- SymLanguageType.cs
- basenumberconverter.cs
- CharacterBufferReference.cs
- HwndAppCommandInputProvider.cs
- _ContextAwareResult.cs
- xdrvalidator.cs
- GenericTypeParameterBuilder.cs
- MetadataArtifactLoaderCompositeResource.cs
- CustomMenuItemCollection.cs
- IResourceProvider.cs
- ObjectItemLoadingSessionData.cs
- Parameter.cs
- ElementUtil.cs
- QuotedPrintableStream.cs
- HttpCacheVaryByContentEncodings.cs
- SafeLibraryHandle.cs
- TreeNodeCollection.cs
- NameSpaceExtractor.cs
- FormClosingEvent.cs
- Int16.cs
- AnnotationResourceChangedEventArgs.cs
- FileDetails.cs
- ListViewAutomationPeer.cs
- ConfigXmlCDataSection.cs
- ConfigurationProperty.cs
- ListSortDescriptionCollection.cs
- SqlCommand.cs
- MetadataItemCollectionFactory.cs
- ColorConverter.cs
- Convert.cs
- RangeValuePatternIdentifiers.cs
- EdmRelationshipRoleAttribute.cs
- FormatConvertedBitmap.cs
- XamlWriter.cs
- DBConnectionString.cs
- TextElementEditingBehaviorAttribute.cs
- VirtualStackFrame.cs
- GeneralTransform3DGroup.cs
- PropertyDescriptorCollection.cs
- ValidationPropertyAttribute.cs
- CopyEncoder.cs
- RSAOAEPKeyExchangeFormatter.cs
- Timer.cs
- ExtentKey.cs
- IsolatedStorageFile.cs
- XPathNodeList.cs
- Propagator.Evaluator.cs
- ColorDialog.cs
- DateTimeUtil.cs
- ClassGenerator.cs
- List.cs
- NetworkInterface.cs
- _NetworkingPerfCounters.cs
- UIAgentMonitor.cs
- Monitor.cs
- ApplicationBuildProvider.cs
- SQLDecimal.cs
- FileDialogCustomPlace.cs
- XamlLoadErrorInfo.cs
- ScriptModule.cs
- DependencyObjectPropertyDescriptor.cs
- FunctionDescription.cs
- HierarchicalDataBoundControlAdapter.cs
- SocketSettings.cs