Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Objects / ELinq / GroupByExpressionRewriter.cs / 2 / GroupByExpressionRewriter.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
using System.Collections.Generic;
using CqtExpression = System.Data.Common.CommandTrees.DbExpression;
using LinqExpression = System.Linq.Expressions.Expression;
using System.Diagnostics;
using System.Data.Metadata.Edm;
namespace System.Data.Objects.ELinq
{
internal sealed partial class ExpressionConverter
{
///
/// Expression visitor that tries to rewrite a given inputExpression to be over the
/// optimized translation of a group by input.
///
private class GroupByExpressionRewriter : DbExpressionVisitor
{
#region Private State
private Dictionary> _aggregateDefaultTranslationToOptimizedTranslationInfoMap;
private DbCommandTree _commandTree;
private string _sourceBindingVariableName;
private DbVariableReferenceExpression _optimizedSourceBindingVarRef;
private DbGroupByTemplate _optimizedGroupByTemplate;
#endregion
#region Constructor
private GroupByExpressionRewriter(ExpressionConverter parent, CqtExpression inputExpression, string sourceBindingVariableName, DbVariableReferenceExpression optimizedSourceBindingVarRef, DbGroupByTemplate optimizedGroupByTemplate)
{
_commandTree = parent._commandTree;
_aggregateDefaultTranslationToOptimizedTranslationInfoMap = parent._aggregateDefaultTranslationToOptimizedTranslationInfoMap;
_sourceBindingVariableName = sourceBindingVariableName;
_optimizedSourceBindingVarRef = optimizedSourceBindingVarRef;
_optimizedGroupByTemplate = optimizedGroupByTemplate;
}
#endregion
#region Public Surface
internal static bool TryRewrite(ExpressionConverter parent, CqtExpression inputExpression, string sourceBindingVariableName, DbVariableReferenceExpression optimizedSourceBindingVarRef, DbGroupByTemplate optimizedGroupByTemplate, out CqtExpression outputExpression)
{
GroupByExpressionRewriter rewriter = new GroupByExpressionRewriter(parent, inputExpression, sourceBindingVariableName, optimizedSourceBindingVarRef, optimizedGroupByTemplate);
outputExpression = rewriter.VisitExpr(inputExpression);
return (outputExpression != null);
}
#endregion
#region Visitor Helper Methods
public IList VisitList(IList exprList) where T : DbExpression
{
IList retList = new List();
bool allEqual = true; // if all arguments come back as equal we simply return the input list
for (int idx = 0; idx < exprList.Count; idx++)
{
CqtExpression newListMember = this.VisitExpr(exprList[idx]);
if (newListMember == null)
{
return null;
}
if (newListMember != exprList[idx])
{
allEqual = false;
}
retList.Add((T)newListMember);
}
if (allEqual)
{
retList = exprList;
}
return retList;
}
public IList VisitExprList(IList exprList)
{
return VisitList(exprList);
}
public DbExpression VisitExpr(DbExpression expr)
{
return expr.Accept(this);
}
#endregion
#region DbExpressionVisitor Members
public override DbExpression Visit(DbExpression e)
{
throw EntityUtil.NotSupported(System.Data.Entity.Strings.Cqt_General_UnsupportedExpression(e.GetType().FullName));
}
public override DbExpression Visit(DbConstantExpression e)
{
return e;
}
public override DbExpression Visit(DbNullExpression e)
{
return e;
}
public override DbExpression Visit(DbVariableReferenceExpression e)
{
return null;
}
public override DbExpression Visit(DbParameterReferenceExpression e)
{
Debug.Assert(TypeSemantics.IsPrimitiveType(e.ResultType), "Parameters are expected to be of primitive types only");
return e;
}
public override DbExpression Visit(DbFunctionExpression e)
{
return null;
}
public override DbExpression Visit(DbPropertyExpression e)
{
if (e.Instance.ExpressionKind == DbExpressionKind.VariableReference)
{
DbVariableReferenceExpression varRefExpression = (DbVariableReferenceExpression)e.Instance;
if (varRefExpression.VariableName == _sourceBindingVariableName)
{
if (e.Property.Name != KeyColumnName)
{
return null;
}
return _commandTree.CreatePropertyExpression(KeyColumnName, _optimizedSourceBindingVarRef);
}
//it may be case that can be handled, but not handling for now
return null;
}
CqtExpression propertyInstance = this.VisitExpr(e.Instance);
if (propertyInstance == null)
{
return null;
}
return _commandTree.CreatePropertyExpression(e.Property.Name, propertyInstance);
}
public override DbExpression Visit(DbComparisonExpression e)
{
DbExpression left = VisitExpr(e.Left);
if (left == null)
{
return null;
}
DbExpression right = VisitExpr(e.Right);
if (right == null)
{
return null;
}
if (e.Left == left && e.Right == right)
{
return e;
}
switch (e.ExpressionKind)
{
case DbExpressionKind.Equals:
return _commandTree.CreateEqualsExpression(left, right);
case DbExpressionKind.NotEquals:
return _commandTree.CreateNotEqualsExpression(left, right);
case DbExpressionKind.LessThan:
return _commandTree.CreateLessThanExpression(left, right);
case DbExpressionKind.GreaterThan:
return _commandTree.CreateGreaterThanExpression(left, right);
case DbExpressionKind.LessThanOrEquals:
return _commandTree.CreateLessThanOrEqualsExpression(left, right);
case DbExpressionKind.GreaterThanOrEquals:
return _commandTree.CreateGreaterThanOrEqualsExpression(left, right);
default:
Debug.Fail("Unhandled expression kind?");
return null;
}
}
public override DbExpression Visit(DbLikeExpression e)
{
return null;
}
public override DbExpression Visit(DbLimitExpression e)
{
return null;
}
public override DbExpression Visit(DbIsNullExpression e)
{
DbExpression operand = this.VisitExpr(e.Argument);
if (operand == null)
{
return null;
}
if (operand == e.Argument)
{
return e;
}
return this._commandTree.CreateIsNullExpression(operand);
}
public override DbExpression Visit(DbArithmeticExpression e)
{
IList args = VisitExprList(e.Arguments);
if (args == null)
{
return null;
}
if (args == e.Arguments)
{
return e;
}
switch (e.ExpressionKind)
{
case DbExpressionKind.Plus:
return _commandTree.CreatePlusExpression(args[0], args[1]);
case DbExpressionKind.Minus:
return _commandTree.CreateMinusExpression(args[0], args[1]);
case DbExpressionKind.Multiply:
return _commandTree.CreateMultiplyExpression(args[0], args[1]);
case DbExpressionKind.Divide:
return _commandTree.CreateDivideExpression(args[0], args[1]);
case DbExpressionKind.Modulo:
return _commandTree.CreateModuloExpression(args[0], args[1]);
case DbExpressionKind.UnaryMinus:
return _commandTree.CreateUnaryMinusExpression(args[0]);
default:
Debug.Fail("Unhandled expression kind?");
return null;
}
}
public override DbExpression Visit(DbAndExpression e)
{
DbExpression left = VisitExpr(e.Left);
if (left == null)
{
return null;
}
DbExpression right = VisitExpr(e.Right);
if (right == null)
{
return null;
}
if (e.Left == left && e.Right == right)
{
return e;
}
return _commandTree.CreateAndExpression(left, right);
}
public override DbExpression Visit(DbOrExpression e)
{
DbExpression left = VisitExpr(e.Left);
if (left == null)
{
return null;
}
DbExpression right = VisitExpr(e.Right);
if (right == null)
{
return null;
}
if (e.Left == left && e.Right == right)
{
return e;
}
return _commandTree.CreateOrExpression(left, right);
}
public override DbExpression Visit(DbNotExpression e)
{
DbExpression operand = this.VisitExpr(e.Argument);
if (operand == null)
{
return null;
}
if (operand == e.Argument)
{
return e;
}
return this._commandTree.CreateNotExpression(operand);
}
public override DbExpression Visit(DbDistinctExpression e)
{
return null;
}
public override DbExpression Visit(DbElementExpression e)
{
//Aggregate by default get translated as ElementExpressions
KeyValuePair optimizedAggregateInfo;
if (!_aggregateDefaultTranslationToOptimizedTranslationInfoMap.TryGetValue(e, out optimizedAggregateInfo))
{
return null;
}
//Make sure it was optimized over this group by.
if (optimizedAggregateInfo.Key != _optimizedGroupByTemplate)
{
return null;
}
return _commandTree.CreatePropertyExpression(optimizedAggregateInfo.Value, _optimizedSourceBindingVarRef);
}
public override DbExpression Visit(DbIsEmptyExpression e)
{
return null;
}
public override DbExpression Visit(DbUnionAllExpression e)
{
return null;
}
public override DbExpression Visit(DbIntersectExpression e)
{
return null;
}
public override DbExpression Visit(DbExceptExpression e)
{
return null;
}
public override DbExpression Visit(DbTreatExpression e)
{
return null;
}
public override DbExpression Visit(DbCastExpression e)
{
CqtExpression arg = this.VisitExpr(e.Argument);
if (arg == null)
{
return null;
}
if (arg == e.Argument)
{
return e;
}
return _commandTree.CreateCastExpression(arg, e.ResultType);
}
public override DbExpression Visit(DbIsOfExpression e)
{
return null;
}
public override DbExpression Visit(DbOfTypeExpression e)
{
return null;
}
public override DbExpression Visit(DbCaseExpression e)
{
IList whens = VisitExprList(e.When);
if (whens == null)
{
return null;
}
IList thens = VisitExprList(e.Then);
if (thens == null)
{
return null;
}
CqtExpression elseClause = VisitExpr(e.Else);
if (elseClause == null)
{
return null;
}
if (whens == e.When && thens == e.Then && elseClause == e.Else)
{
return e;
}
return _commandTree.CreateCaseExpression(whens, thens, elseClause);
}
public override DbExpression Visit(DbNewInstanceExpression e)
{
IList newArguments = VisitExprList(e.Arguments);
if (newArguments == null)
{
return null;
}
if (newArguments == e.Arguments)
{
return e;
}
return _commandTree.CreateNewInstanceExpression(e.ResultType, newArguments);
}
public override DbExpression Visit(DbRefExpression e)
{
return null;
}
public override DbExpression Visit(DbRelationshipNavigationExpression e)
{
return null;
}
public override DbExpression Visit(DbDerefExpression e)
{
return null;
}
public override DbExpression Visit(DbRefKeyExpression e)
{
return null;
}
public override DbExpression Visit(DbEntityRefExpression e)
{
return null;
}
public override DbExpression Visit(DbScanExpression e)
{
return null;
}
public override DbExpression Visit(DbFilterExpression e)
{
return null;
}
public override DbExpression Visit(DbProjectExpression e)
{
return null;
}
public override DbExpression Visit(DbCrossJoinExpression e)
{
return null;
}
public override DbExpression Visit(DbJoinExpression e)
{
return null;
}
public override DbExpression Visit(DbApplyExpression e)
{
return null;
}
public override DbExpression Visit(DbGroupByExpression e)
{
return null;
}
public override DbExpression Visit(DbSkipExpression e)
{
return null;
}
public override DbExpression Visit(DbSortExpression e)
{
return null;
}
public override DbExpression Visit(DbQuantifierExpression e)
{
return null;
}
#endregion
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
using System.Collections.Generic;
using CqtExpression = System.Data.Common.CommandTrees.DbExpression;
using LinqExpression = System.Linq.Expressions.Expression;
using System.Diagnostics;
using System.Data.Metadata.Edm;
namespace System.Data.Objects.ELinq
{
internal sealed partial class ExpressionConverter
{
///
/// Expression visitor that tries to rewrite a given inputExpression to be over the
/// optimized translation of a group by input.
///
private class GroupByExpressionRewriter : DbExpressionVisitor
{
#region Private State
private Dictionary> _aggregateDefaultTranslationToOptimizedTranslationInfoMap;
private DbCommandTree _commandTree;
private string _sourceBindingVariableName;
private DbVariableReferenceExpression _optimizedSourceBindingVarRef;
private DbGroupByTemplate _optimizedGroupByTemplate;
#endregion
#region Constructor
private GroupByExpressionRewriter(ExpressionConverter parent, CqtExpression inputExpression, string sourceBindingVariableName, DbVariableReferenceExpression optimizedSourceBindingVarRef, DbGroupByTemplate optimizedGroupByTemplate)
{
_commandTree = parent._commandTree;
_aggregateDefaultTranslationToOptimizedTranslationInfoMap = parent._aggregateDefaultTranslationToOptimizedTranslationInfoMap;
_sourceBindingVariableName = sourceBindingVariableName;
_optimizedSourceBindingVarRef = optimizedSourceBindingVarRef;
_optimizedGroupByTemplate = optimizedGroupByTemplate;
}
#endregion
#region Public Surface
internal static bool TryRewrite(ExpressionConverter parent, CqtExpression inputExpression, string sourceBindingVariableName, DbVariableReferenceExpression optimizedSourceBindingVarRef, DbGroupByTemplate optimizedGroupByTemplate, out CqtExpression outputExpression)
{
GroupByExpressionRewriter rewriter = new GroupByExpressionRewriter(parent, inputExpression, sourceBindingVariableName, optimizedSourceBindingVarRef, optimizedGroupByTemplate);
outputExpression = rewriter.VisitExpr(inputExpression);
return (outputExpression != null);
}
#endregion
#region Visitor Helper Methods
public IList VisitList(IList exprList) where T : DbExpression
{
IList retList = new List();
bool allEqual = true; // if all arguments come back as equal we simply return the input list
for (int idx = 0; idx < exprList.Count; idx++)
{
CqtExpression newListMember = this.VisitExpr(exprList[idx]);
if (newListMember == null)
{
return null;
}
if (newListMember != exprList[idx])
{
allEqual = false;
}
retList.Add((T)newListMember);
}
if (allEqual)
{
retList = exprList;
}
return retList;
}
public IList VisitExprList(IList exprList)
{
return VisitList(exprList);
}
public DbExpression VisitExpr(DbExpression expr)
{
return expr.Accept(this);
}
#endregion
#region DbExpressionVisitor Members
public override DbExpression Visit(DbExpression e)
{
throw EntityUtil.NotSupported(System.Data.Entity.Strings.Cqt_General_UnsupportedExpression(e.GetType().FullName));
}
public override DbExpression Visit(DbConstantExpression e)
{
return e;
}
public override DbExpression Visit(DbNullExpression e)
{
return e;
}
public override DbExpression Visit(DbVariableReferenceExpression e)
{
return null;
}
public override DbExpression Visit(DbParameterReferenceExpression e)
{
Debug.Assert(TypeSemantics.IsPrimitiveType(e.ResultType), "Parameters are expected to be of primitive types only");
return e;
}
public override DbExpression Visit(DbFunctionExpression e)
{
return null;
}
public override DbExpression Visit(DbPropertyExpression e)
{
if (e.Instance.ExpressionKind == DbExpressionKind.VariableReference)
{
DbVariableReferenceExpression varRefExpression = (DbVariableReferenceExpression)e.Instance;
if (varRefExpression.VariableName == _sourceBindingVariableName)
{
if (e.Property.Name != KeyColumnName)
{
return null;
}
return _commandTree.CreatePropertyExpression(KeyColumnName, _optimizedSourceBindingVarRef);
}
//it may be case that can be handled, but not handling for now
return null;
}
CqtExpression propertyInstance = this.VisitExpr(e.Instance);
if (propertyInstance == null)
{
return null;
}
return _commandTree.CreatePropertyExpression(e.Property.Name, propertyInstance);
}
public override DbExpression Visit(DbComparisonExpression e)
{
DbExpression left = VisitExpr(e.Left);
if (left == null)
{
return null;
}
DbExpression right = VisitExpr(e.Right);
if (right == null)
{
return null;
}
if (e.Left == left && e.Right == right)
{
return e;
}
switch (e.ExpressionKind)
{
case DbExpressionKind.Equals:
return _commandTree.CreateEqualsExpression(left, right);
case DbExpressionKind.NotEquals:
return _commandTree.CreateNotEqualsExpression(left, right);
case DbExpressionKind.LessThan:
return _commandTree.CreateLessThanExpression(left, right);
case DbExpressionKind.GreaterThan:
return _commandTree.CreateGreaterThanExpression(left, right);
case DbExpressionKind.LessThanOrEquals:
return _commandTree.CreateLessThanOrEqualsExpression(left, right);
case DbExpressionKind.GreaterThanOrEquals:
return _commandTree.CreateGreaterThanOrEqualsExpression(left, right);
default:
Debug.Fail("Unhandled expression kind?");
return null;
}
}
public override DbExpression Visit(DbLikeExpression e)
{
return null;
}
public override DbExpression Visit(DbLimitExpression e)
{
return null;
}
public override DbExpression Visit(DbIsNullExpression e)
{
DbExpression operand = this.VisitExpr(e.Argument);
if (operand == null)
{
return null;
}
if (operand == e.Argument)
{
return e;
}
return this._commandTree.CreateIsNullExpression(operand);
}
public override DbExpression Visit(DbArithmeticExpression e)
{
IList args = VisitExprList(e.Arguments);
if (args == null)
{
return null;
}
if (args == e.Arguments)
{
return e;
}
switch (e.ExpressionKind)
{
case DbExpressionKind.Plus:
return _commandTree.CreatePlusExpression(args[0], args[1]);
case DbExpressionKind.Minus:
return _commandTree.CreateMinusExpression(args[0], args[1]);
case DbExpressionKind.Multiply:
return _commandTree.CreateMultiplyExpression(args[0], args[1]);
case DbExpressionKind.Divide:
return _commandTree.CreateDivideExpression(args[0], args[1]);
case DbExpressionKind.Modulo:
return _commandTree.CreateModuloExpression(args[0], args[1]);
case DbExpressionKind.UnaryMinus:
return _commandTree.CreateUnaryMinusExpression(args[0]);
default:
Debug.Fail("Unhandled expression kind?");
return null;
}
}
public override DbExpression Visit(DbAndExpression e)
{
DbExpression left = VisitExpr(e.Left);
if (left == null)
{
return null;
}
DbExpression right = VisitExpr(e.Right);
if (right == null)
{
return null;
}
if (e.Left == left && e.Right == right)
{
return e;
}
return _commandTree.CreateAndExpression(left, right);
}
public override DbExpression Visit(DbOrExpression e)
{
DbExpression left = VisitExpr(e.Left);
if (left == null)
{
return null;
}
DbExpression right = VisitExpr(e.Right);
if (right == null)
{
return null;
}
if (e.Left == left && e.Right == right)
{
return e;
}
return _commandTree.CreateOrExpression(left, right);
}
public override DbExpression Visit(DbNotExpression e)
{
DbExpression operand = this.VisitExpr(e.Argument);
if (operand == null)
{
return null;
}
if (operand == e.Argument)
{
return e;
}
return this._commandTree.CreateNotExpression(operand);
}
public override DbExpression Visit(DbDistinctExpression e)
{
return null;
}
public override DbExpression Visit(DbElementExpression e)
{
//Aggregate by default get translated as ElementExpressions
KeyValuePair optimizedAggregateInfo;
if (!_aggregateDefaultTranslationToOptimizedTranslationInfoMap.TryGetValue(e, out optimizedAggregateInfo))
{
return null;
}
//Make sure it was optimized over this group by.
if (optimizedAggregateInfo.Key != _optimizedGroupByTemplate)
{
return null;
}
return _commandTree.CreatePropertyExpression(optimizedAggregateInfo.Value, _optimizedSourceBindingVarRef);
}
public override DbExpression Visit(DbIsEmptyExpression e)
{
return null;
}
public override DbExpression Visit(DbUnionAllExpression e)
{
return null;
}
public override DbExpression Visit(DbIntersectExpression e)
{
return null;
}
public override DbExpression Visit(DbExceptExpression e)
{
return null;
}
public override DbExpression Visit(DbTreatExpression e)
{
return null;
}
public override DbExpression Visit(DbCastExpression e)
{
CqtExpression arg = this.VisitExpr(e.Argument);
if (arg == null)
{
return null;
}
if (arg == e.Argument)
{
return e;
}
return _commandTree.CreateCastExpression(arg, e.ResultType);
}
public override DbExpression Visit(DbIsOfExpression e)
{
return null;
}
public override DbExpression Visit(DbOfTypeExpression e)
{
return null;
}
public override DbExpression Visit(DbCaseExpression e)
{
IList whens = VisitExprList(e.When);
if (whens == null)
{
return null;
}
IList thens = VisitExprList(e.Then);
if (thens == null)
{
return null;
}
CqtExpression elseClause = VisitExpr(e.Else);
if (elseClause == null)
{
return null;
}
if (whens == e.When && thens == e.Then && elseClause == e.Else)
{
return e;
}
return _commandTree.CreateCaseExpression(whens, thens, elseClause);
}
public override DbExpression Visit(DbNewInstanceExpression e)
{
IList newArguments = VisitExprList(e.Arguments);
if (newArguments == null)
{
return null;
}
if (newArguments == e.Arguments)
{
return e;
}
return _commandTree.CreateNewInstanceExpression(e.ResultType, newArguments);
}
public override DbExpression Visit(DbRefExpression e)
{
return null;
}
public override DbExpression Visit(DbRelationshipNavigationExpression e)
{
return null;
}
public override DbExpression Visit(DbDerefExpression e)
{
return null;
}
public override DbExpression Visit(DbRefKeyExpression e)
{
return null;
}
public override DbExpression Visit(DbEntityRefExpression e)
{
return null;
}
public override DbExpression Visit(DbScanExpression e)
{
return null;
}
public override DbExpression Visit(DbFilterExpression e)
{
return null;
}
public override DbExpression Visit(DbProjectExpression e)
{
return null;
}
public override DbExpression Visit(DbCrossJoinExpression e)
{
return null;
}
public override DbExpression Visit(DbJoinExpression e)
{
return null;
}
public override DbExpression Visit(DbApplyExpression e)
{
return null;
}
public override DbExpression Visit(DbGroupByExpression e)
{
return null;
}
public override DbExpression Visit(DbSkipExpression e)
{
return null;
}
public override DbExpression Visit(DbSortExpression e)
{
return null;
}
public override DbExpression Visit(DbQuantifierExpression e)
{
return null;
}
#endregion
}
}
}
// 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
- StoragePropertyMapping.cs
- GcHandle.cs
- AttachInfo.cs
- TextDecorationUnitValidation.cs
- TextEffect.cs
- CommandLibraryHelper.cs
- WebPartEditorCancelVerb.cs
- AnimationClockResource.cs
- XmlByteStreamWriter.cs
- RuntimeCompatibilityAttribute.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ConnectionConsumerAttribute.cs
- DecoderFallbackWithFailureFlag.cs
- TemplatePropertyEntry.cs
- DataGridCommandEventArgs.cs
- X509Certificate2Collection.cs
- SqlGatherProducedAliases.cs
- PageThemeCodeDomTreeGenerator.cs
- EventHandlersDesigner.cs
- XmlComment.cs
- SerializationException.cs
- JsonReader.cs
- SpellerError.cs
- X509UI.cs
- ListViewUpdatedEventArgs.cs
- DataServiceRequest.cs
- NativeRightsManagementAPIsStructures.cs
- MonitoringDescriptionAttribute.cs
- Lease.cs
- ProtocolsConfigurationEntry.cs
- DiscreteKeyFrames.cs
- KeyboardEventArgs.cs
- FragmentNavigationEventArgs.cs
- WorkflowDebuggerSteppingAttribute.cs
- ResourceSet.cs
- EventLogPermission.cs
- PackWebResponse.cs
- DragEvent.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- TableCell.cs
- PeerTransportCredentialType.cs
- ValidationRule.cs
- RelationshipConverter.cs
- BoundsDrawingContextWalker.cs
- Root.cs
- VoiceInfo.cs
- DataFormat.cs
- DESCryptoServiceProvider.cs
- HitTestWithGeometryDrawingContextWalker.cs
- OrderedDictionaryStateHelper.cs
- ConfigXmlSignificantWhitespace.cs
- DataRelationCollection.cs
- TraceSource.cs
- Frame.cs
- VirtualPathProvider.cs
- IsolatedStorageException.cs
- CryptoConfig.cs
- ApplicationSecurityManager.cs
- XmlSchemaAppInfo.cs
- VisualBrush.cs
- URLMembershipCondition.cs
- LineSegment.cs
- EventListenerClientSide.cs
- WindowsSysHeader.cs
- TextTreeUndo.cs
- ExpressionBuilderContext.cs
- BrowserDefinition.cs
- MachineKeyValidationConverter.cs
- StringDictionary.cs
- DataSourceControlBuilder.cs
- ConstantExpression.cs
- XmlQualifiedName.cs
- SmiGettersStream.cs
- SoapElementAttribute.cs
- TypeCodeDomSerializer.cs
- Error.cs
- MediaPlayerState.cs
- ImageSource.cs
- TaskFormBase.cs
- Monitor.cs
- StylusPointPropertyInfo.cs
- Executor.cs
- DeviceContexts.cs
- TextEditorParagraphs.cs
- DataGridViewMethods.cs
- CancellationToken.cs
- ImageCodecInfoPrivate.cs
- SystemShuttingDownException.cs
- StrongNameMembershipCondition.cs
- BrushConverter.cs
- XmlSchemaAnnotated.cs
- LocalizableAttribute.cs
- DateTimeConverter.cs
- IISUnsafeMethods.cs
- DisplayNameAttribute.cs
- ConfigXmlDocument.cs
- StringPropertyBuilder.cs
- OSEnvironmentHelper.cs
- SelectedDatesCollection.cs
- ReadOnlyPropertyMetadata.cs