Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / UI / SimplePropertyEntry.cs / 1 / SimplePropertyEntry.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System.CodeDom; using System.Web.Compilation; using Debug=System.Web.Util.Debug; using System.Security.Permissions; ////// PropertyEntry for simple attributes /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class SimplePropertyEntry : PropertyEntry { private string _persistedValue; private bool _useSetAttribute; private object _value; internal SimplePropertyEntry() { } ////// // public string PersistedValue { get { return _persistedValue; } set { _persistedValue = value; } } ////// public bool UseSetAttribute { get { return _useSetAttribute; } set { _useSetAttribute = value; } } ////// public object Value { get { return _value; } set { _value = value; } } // Build the statement that assigns this property internal CodeStatement GetCodeStatement(BaseTemplateCodeDomTreeGenerator generator, CodeExpression ctrlRefExpr) { // If we don't have a type, use IAttributeAccessor.SetAttribute if (UseSetAttribute) { // e.g. ((IAttributeAccessor)__ctrl).SetAttribute("{{_name}}", "{{_value}}"); CodeMethodInvokeExpression methCallExpression = new CodeMethodInvokeExpression( new CodeCastExpression(typeof(IAttributeAccessor), ctrlRefExpr), "SetAttribute"); methCallExpression.Parameters.Add(new CodePrimitiveExpression(Name)); methCallExpression.Parameters.Add(new CodePrimitiveExpression(Value)); return new CodeExpressionStatement(methCallExpression); } CodeExpression leftExpr, rightExpr = null; if (PropertyInfo != null) { leftExpr = CodeDomUtility.BuildPropertyReferenceExpression(ctrlRefExpr, Name); } else { // In case of a field, there should only be one (unlike properties) Debug.Assert(Name.IndexOf('.') < 0, "_name.IndexOf('.') < 0"); leftExpr = new CodeFieldReferenceExpression(ctrlRefExpr, Name); } if (Type == typeof(string)) { rightExpr = generator.BuildStringPropertyExpression(this); } else { rightExpr = CodeDomUtility.GenerateExpressionForValue(PropertyInfo, Value, Type); } // Now that we have both side, add the assignment return new CodeAssignStatement(leftExpr, rightExpr); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System.CodeDom; using System.Web.Compilation; using Debug=System.Web.Util.Debug; using System.Security.Permissions; ////// PropertyEntry for simple attributes /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class SimplePropertyEntry : PropertyEntry { private string _persistedValue; private bool _useSetAttribute; private object _value; internal SimplePropertyEntry() { } ////// // public string PersistedValue { get { return _persistedValue; } set { _persistedValue = value; } } ////// public bool UseSetAttribute { get { return _useSetAttribute; } set { _useSetAttribute = value; } } ////// public object Value { get { return _value; } set { _value = value; } } // Build the statement that assigns this property internal CodeStatement GetCodeStatement(BaseTemplateCodeDomTreeGenerator generator, CodeExpression ctrlRefExpr) { // If we don't have a type, use IAttributeAccessor.SetAttribute if (UseSetAttribute) { // e.g. ((IAttributeAccessor)__ctrl).SetAttribute("{{_name}}", "{{_value}}"); CodeMethodInvokeExpression methCallExpression = new CodeMethodInvokeExpression( new CodeCastExpression(typeof(IAttributeAccessor), ctrlRefExpr), "SetAttribute"); methCallExpression.Parameters.Add(new CodePrimitiveExpression(Name)); methCallExpression.Parameters.Add(new CodePrimitiveExpression(Value)); return new CodeExpressionStatement(methCallExpression); } CodeExpression leftExpr, rightExpr = null; if (PropertyInfo != null) { leftExpr = CodeDomUtility.BuildPropertyReferenceExpression(ctrlRefExpr, Name); } else { // In case of a field, there should only be one (unlike properties) Debug.Assert(Name.IndexOf('.') < 0, "_name.IndexOf('.') < 0"); leftExpr = new CodeFieldReferenceExpression(ctrlRefExpr, Name); } if (Type == typeof(string)) { rightExpr = generator.BuildStringPropertyExpression(this); } else { rightExpr = CodeDomUtility.GenerateExpressionForValue(PropertyInfo, Value, Type); } // Now that we have both side, add the assignment return new CodeAssignStatement(leftExpr, rightExpr); } } } // 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
- parserscommon.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ProcessHostFactoryHelper.cs
- FileEnumerator.cs
- dtdvalidator.cs
- OptimizerPatterns.cs
- SchemaConstraints.cs
- CellCreator.cs
- DesignerAutoFormatCollection.cs
- XmlCharCheckingReader.cs
- WorkflowRuntimeEndpoint.cs
- SymbolEqualComparer.cs
- CollectionViewGroupRoot.cs
- ZeroOpNode.cs
- DataGridRowEventArgs.cs
- UIElementPropertyUndoUnit.cs
- MetadataWorkspace.cs
- ADMembershipUser.cs
- OwnerDrawPropertyBag.cs
- SizeAnimationUsingKeyFrames.cs
- EdmSchemaAttribute.cs
- FixedElement.cs
- RuntimeArgumentHandle.cs
- InkCanvasFeedbackAdorner.cs
- ListBoxItemWrapperAutomationPeer.cs
- EntityDataSourceEntityTypeFilterItem.cs
- HMACSHA384.cs
- PageFunction.cs
- UnsafeNativeMethods.cs
- XmlProcessingInstruction.cs
- UriTemplate.cs
- SafeRegistryHandle.cs
- SqlLiftWhereClauses.cs
- ToolStripProgressBar.cs
- MailDefinitionBodyFileNameEditor.cs
- CursorInteropHelper.cs
- MenuCommandsChangedEventArgs.cs
- ApplicationDirectory.cs
- CreateParams.cs
- XmlSerializerFactory.cs
- SmiMetaDataProperty.cs
- PropertyValueChangedEvent.cs
- ErrorReporting.cs
- FormViewModeEventArgs.cs
- RuleSettings.cs
- Attribute.cs
- EntityContainer.cs
- BitmapImage.cs
- WinEventHandler.cs
- PrePrepareMethodAttribute.cs
- BigInt.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- HtmlInputHidden.cs
- SafeNativeMethods.cs
- X509ChainElement.cs
- AuthorizationRuleCollection.cs
- TextDecoration.cs
- TableParaClient.cs
- SingleObjectCollection.cs
- RsaSecurityTokenParameters.cs
- PartialClassGenerationTaskInternal.cs
- PositiveTimeSpanValidator.cs
- OracleCommand.cs
- WindowCollection.cs
- ToolStripRenderEventArgs.cs
- ControlPropertyNameConverter.cs
- PassportAuthenticationModule.cs
- ResourceDictionary.cs
- TreeNode.cs
- ConfigurationHelpers.cs
- DataGridViewCheckBoxColumn.cs
- CodeExpressionStatement.cs
- PKCS1MaskGenerationMethod.cs
- AnnotationResourceChangedEventArgs.cs
- AttributeConverter.cs
- XpsResourceDictionary.cs
- SiteMapHierarchicalDataSourceView.cs
- XslAstAnalyzer.cs
- ImageCodecInfoPrivate.cs
- TextBox.cs
- TypeCodeDomSerializer.cs
- SqlGatherProducedAliases.cs
- TextFormatter.cs
- Events.cs
- EnterpriseServicesHelper.cs
- OpacityConverter.cs
- MissingManifestResourceException.cs
- EntryIndex.cs
- InternalCache.cs
- DataGridViewElement.cs
- RelationshipDetailsRow.cs
- HttpApplicationFactory.cs
- CriticalHandle.cs
- Attributes.cs
- ArgumentException.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- Resources.Designer.cs
- BaseTemplatedMobileComponentEditor.cs
- TextEditorSelection.cs
- HttpServerVarsCollection.cs