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
- DashStyle.cs
- BlurBitmapEffect.cs
- Literal.cs
- ComponentResourceManager.cs
- XmlDictionaryWriter.cs
- StreamGeometry.cs
- TTSVoice.cs
- SHA512.cs
- ProcessHostConfigUtils.cs
- DurableErrorHandler.cs
- WindowsScrollBarBits.cs
- UnsafeNativeMethods.cs
- ThicknessKeyFrameCollection.cs
- KeyMatchBuilder.cs
- CollectionView.cs
- MulticastOption.cs
- AccessDataSourceView.cs
- SqlEnums.cs
- WebPartZoneBase.cs
- XsdDuration.cs
- FocusChangedEventArgs.cs
- Unit.cs
- WebPartAddingEventArgs.cs
- Help.cs
- DropDownList.cs
- AQNBuilder.cs
- EntitySetDataBindingList.cs
- PreviewPrintController.cs
- DependentList.cs
- GridView.cs
- ColumnResizeUndoUnit.cs
- OdbcDataAdapter.cs
- ConfigXmlText.cs
- LambdaSerializationException.cs
- SystemColors.cs
- Parameter.cs
- SQLBytes.cs
- PerfService.cs
- SortedDictionary.cs
- SqlClientMetaDataCollectionNames.cs
- ResourceType.cs
- OraclePermission.cs
- CodeExporter.cs
- SpellerStatusTable.cs
- ToolStripLabel.cs
- BinarySerializer.cs
- AutomationPatternInfo.cs
- ConnectionManagementElementCollection.cs
- CodeConstructor.cs
- TileBrush.cs
- securitymgrsite.cs
- EnumerableCollectionView.cs
- AspCompat.cs
- MenuItemCollection.cs
- XamlClipboardData.cs
- ItemDragEvent.cs
- MatrixKeyFrameCollection.cs
- MessagePartDescriptionCollection.cs
- CatalogZoneAutoFormat.cs
- Item.cs
- HitTestWithPointDrawingContextWalker.cs
- DbUpdateCommandTree.cs
- EncodedStreamFactory.cs
- SqlGenericUtil.cs
- KeyboardEventArgs.cs
- TrackingLocation.cs
- MailMessage.cs
- CuspData.cs
- XmlElementAttributes.cs
- SimpleTableProvider.cs
- SortExpressionBuilder.cs
- SeparatorAutomationPeer.cs
- FileVersion.cs
- DataGridItemAttachedStorage.cs
- RegexGroup.cs
- SecurityPermission.cs
- UrlAuthorizationModule.cs
- ChangeNode.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- ListSortDescription.cs
- SystemIPGlobalProperties.cs
- TextDecoration.cs
- GACIdentityPermission.cs
- _ChunkParse.cs
- SqlTypeSystemProvider.cs
- ClientSponsor.cs
- Pkcs7Recipient.cs
- BaseDataList.cs
- SymbolEqualComparer.cs
- TextShapeableCharacters.cs
- ErrorWebPart.cs
- Int64.cs
- WhereQueryOperator.cs
- WebPartZoneBaseDesigner.cs
- BrowserInteropHelper.cs
- QilUnary.cs
- FlowDocumentView.cs
- GradientStopCollection.cs
- ProjectionCamera.cs
- elementinformation.cs