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
- SubclassTypeValidatorAttribute.cs
- RuntimeConfig.cs
- M3DUtil.cs
- XmlSchemaSimpleContent.cs
- Transform3D.cs
- ThicknessAnimation.cs
- MetadataExchangeClient.cs
- HashHelper.cs
- ListMarkerSourceInfo.cs
- Logging.cs
- TemplateControlParser.cs
- TransportChannelListener.cs
- InvalidPrinterException.cs
- ApplicationCommands.cs
- ResourceAttributes.cs
- SapiRecoContext.cs
- Bookmark.cs
- WindowVisualStateTracker.cs
- DropSource.cs
- AnchoredBlock.cs
- Socket.cs
- RuntimeHelpers.cs
- EventEntry.cs
- ReverseInheritProperty.cs
- WebResponse.cs
- AnnotationResource.cs
- DataColumnMapping.cs
- SchemaType.cs
- WrapPanel.cs
- ValuePatternIdentifiers.cs
- WebPartDisplayMode.cs
- BulletedList.cs
- JsonGlobals.cs
- altserialization.cs
- _Semaphore.cs
- InternalUserCancelledException.cs
- ServiceEndpointAssociationProvider.cs
- DeviceOverridableAttribute.cs
- GradientBrush.cs
- ObjectItemConventionAssemblyLoader.cs
- StrokeIntersection.cs
- Pair.cs
- FunctionQuery.cs
- StickyNoteHelper.cs
- PenLineCapValidation.cs
- ConsumerConnectionPointCollection.cs
- RegexEditorDialog.cs
- EventTrigger.cs
- Stack.cs
- RuntimeIdentifierPropertyAttribute.cs
- ColorTransform.cs
- MemberDescriptor.cs
- RangeValidator.cs
- NavigateEvent.cs
- CornerRadiusConverter.cs
- TaiwanCalendar.cs
- listitem.cs
- DesignerWebPartChrome.cs
- InputEventArgs.cs
- BinaryParser.cs
- SmtpClient.cs
- ButtonChrome.cs
- X509ImageLogo.cs
- MsmqEncryptionAlgorithm.cs
- TopClause.cs
- ExpandCollapseProviderWrapper.cs
- TimeoutStream.cs
- UnsafePeerToPeerMethods.cs
- Speller.cs
- SqlDataSourceCommandEventArgs.cs
- ModulesEntry.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- XmlWrappingReader.cs
- SrgsRulesCollection.cs
- SHA384Cng.cs
- util.cs
- ContextMenu.cs
- PositiveTimeSpanValidator.cs
- BamlRecordHelper.cs
- DropSource.cs
- CancelEventArgs.cs
- ComponentRenameEvent.cs
- ByteAnimationUsingKeyFrames.cs
- CommonObjectSecurity.cs
- PropertyPath.cs
- SqlClientWrapperSmiStream.cs
- XmlHierarchicalDataSourceView.cs
- AlignmentYValidation.cs
- DataBindingHandlerAttribute.cs
- SmiGettersStream.cs
- DoubleAnimation.cs
- SettingsAttributeDictionary.cs
- PrivilegeNotHeldException.cs
- FlagsAttribute.cs
- ExceptionRoutedEventArgs.cs
- ScaleTransform.cs
- BindingGroup.cs
- _Rfc2616CacheValidators.cs
- BitArray.cs
- shaperfactoryquerycacheentry.cs