Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- WindowsUpDown.cs
- ResourcesBuildProvider.cs
- PageSetupDialog.cs
- handlecollector.cs
- StateMachine.cs
- DbMetaDataFactory.cs
- PrintDialog.cs
- WindowsListViewItem.cs
- EntitySqlQueryBuilder.cs
- InitializerFacet.cs
- RoutedEventConverter.cs
- SQLMoneyStorage.cs
- StateBag.cs
- SQLChars.cs
- Hex.cs
- BrushValueSerializer.cs
- shaperfactoryquerycacheentry.cs
- Relationship.cs
- FormsIdentity.cs
- Util.cs
- COM2PropertyDescriptor.cs
- XmlCustomFormatter.cs
- DocumentsTrace.cs
- RectAnimationClockResource.cs
- GeneralTransformGroup.cs
- FormatException.cs
- Component.cs
- PrefixQName.cs
- DomainUpDown.cs
- Figure.cs
- DateTimeFormat.cs
- ContextMenu.cs
- ThousandthOfEmRealPoints.cs
- DataTableClearEvent.cs
- XhtmlBasicLabelAdapter.cs
- ConfigPathUtility.cs
- SortedDictionary.cs
- DataControlImageButton.cs
- DataTemplate.cs
- ImageAttributes.cs
- PageVisual.cs
- FormViewCommandEventArgs.cs
- AnimatedTypeHelpers.cs
- TableLayoutCellPaintEventArgs.cs
- CuspData.cs
- Odbc32.cs
- cookieexception.cs
- CannotUnloadAppDomainException.cs
- GridView.cs
- WindowsListViewGroupSubsetLink.cs
- UrlMappingCollection.cs
- OdbcHandle.cs
- recordstatefactory.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- Convert.cs
- CultureMapper.cs
- StrongNameUtility.cs
- TextRangeAdaptor.cs
- ClientEventManager.cs
- cookiecollection.cs
- FormViewUpdateEventArgs.cs
- DbRetry.cs
- StreamUpdate.cs
- QilTernary.cs
- SystemUdpStatistics.cs
- DoubleConverter.cs
- ViewGenerator.cs
- isolationinterop.cs
- COM2Enum.cs
- Vector3DKeyFrameCollection.cs
- NameValueCollection.cs
- UDPClient.cs
- ProviderCollection.cs
- BoolExpr.cs
- WindowsFormsLinkLabel.cs
- Util.cs
- XPathAncestorQuery.cs
- StructuralType.cs
- HandledEventArgs.cs
- CSharpCodeProvider.cs
- TemplateLookupAction.cs
- NamedServiceModelExtensionCollectionElement.cs
- PropertyValueUIItem.cs
- RtfControls.cs
- TextDecoration.cs
- ConfigurationStrings.cs
- ThemeableAttribute.cs
- ManagedWndProcTracker.cs
- HwndHost.cs
- BinaryObjectWriter.cs
- AuthenticationService.cs
- CodeCompileUnit.cs
- precedingquery.cs
- ExtendedPropertyDescriptor.cs
- SqlDataSourceConfigureSelectPanel.cs
- TextRange.cs
- RoutedEventHandlerInfo.cs
- CardSpaceSelector.cs
- PositiveTimeSpanValidatorAttribute.cs
- securestring.cs