Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / SimplePropertyEntry.cs / 1305376 / 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; ////// PropertyEntry for simple attributes /// 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; ////// PropertyEntry for simple attributes /// 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
- PathFigureCollection.cs
- FileStream.cs
- DBCommand.cs
- RolePrincipal.cs
- HttpPostedFile.cs
- WebFormsRootDesigner.cs
- WebReference.cs
- Accessible.cs
- DataGridViewAccessibleObject.cs
- ThreadPool.cs
- HttpAsyncResult.cs
- Context.cs
- DataServiceCollectionOfT.cs
- InnerItemCollectionView.cs
- OrderedDictionaryStateHelper.cs
- Listen.cs
- EditorPartDesigner.cs
- SQLInt16.cs
- Console.cs
- ExpressionBuilderContext.cs
- precedingsibling.cs
- MessageSecurityException.cs
- EnumValAlphaComparer.cs
- DataGridTextBoxColumn.cs
- XmlSchemaType.cs
- QuaternionConverter.cs
- XmlSchemaExporter.cs
- DiscoveryServiceExtension.cs
- EventLogTraceListener.cs
- ChannelManager.cs
- CompoundFileStreamReference.cs
- DateTimeOffset.cs
- _NegoStream.cs
- TcpSocketManager.cs
- ConstraintManager.cs
- BridgeDataRecord.cs
- Vector.cs
- InvokeSchedule.cs
- ProfilePropertyNameValidator.cs
- OracleEncoding.cs
- RoleManagerModule.cs
- DynamicILGenerator.cs
- SyntaxCheck.cs
- DataServiceException.cs
- XmlSortKey.cs
- ACL.cs
- ToolboxDataAttribute.cs
- XmlReturnWriter.cs
- ZoneIdentityPermission.cs
- ByteArrayHelperWithString.cs
- _LocalDataStoreMgr.cs
- HandleRef.cs
- BamlReader.cs
- SqlProfileProvider.cs
- RectAnimationBase.cs
- HttpAsyncResult.cs
- URI.cs
- ModelVisual3D.cs
- ReservationNotFoundException.cs
- MarginCollapsingState.cs
- KeyValuePairs.cs
- OdbcDataReader.cs
- RenderDataDrawingContext.cs
- ILGenerator.cs
- DesignerContextDescriptor.cs
- WeakHashtable.cs
- SqlVersion.cs
- SurrogateEncoder.cs
- ColorConvertedBitmapExtension.cs
- Touch.cs
- Type.cs
- CalendarItem.cs
- UMPAttributes.cs
- ToolBar.cs
- SolidColorBrush.cs
- PackWebRequestFactory.cs
- DesignOnlyAttribute.cs
- WorkflowInspectionServices.cs
- _AutoWebProxyScriptHelper.cs
- Int32RectConverter.cs
- AuthorizationRule.cs
- ClientTarget.cs
- LinqDataSourceView.cs
- C14NUtil.cs
- HwndTarget.cs
- XPathNodePointer.cs
- XamlClipboardData.cs
- AtomEntry.cs
- SocketException.cs
- MouseOverProperty.cs
- CodeIdentifiers.cs
- WmlValidatorAdapter.cs
- InstanceOwnerException.cs
- BitmapEffectState.cs
- SafeEventHandle.cs
- UIPropertyMetadata.cs
- TrustManagerMoreInformation.cs
- ControlAdapter.cs
- ObjectPropertyMapping.cs
- ClientClassGenerator.cs