Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- TaskDesigner.cs
- ErrorProvider.cs
- ReadWriteSpinLock.cs
- StateMachineWorkflow.cs
- CustomSignedXml.cs
- ImageCreator.cs
- SingleObjectCollection.cs
- KnownBoxes.cs
- TemplateKey.cs
- TabControl.cs
- CellTreeNode.cs
- OutputChannelBinder.cs
- CollectionBuilder.cs
- ITreeGenerator.cs
- AuthenticationSection.cs
- PropertyDescriptorGridEntry.cs
- GridSplitterAutomationPeer.cs
- GraphicsPath.cs
- ByteStack.cs
- WinOEToolBoxItem.cs
- DataServiceQuery.cs
- ResponseStream.cs
- XPathSelfQuery.cs
- StyleSheet.cs
- RuntimeConfigLKG.cs
- SystemResourceKey.cs
- Int32CollectionValueSerializer.cs
- AttachInfo.cs
- XmlSerializationReader.cs
- PropertyGrid.cs
- TimeSpanConverter.cs
- TypeConverterAttribute.cs
- DataGridViewLayoutData.cs
- DocobjHost.cs
- TdsParserHelperClasses.cs
- AdornerHitTestResult.cs
- oledbmetadatacollectionnames.cs
- ProfileParameter.cs
- PropertyChangedEventArgs.cs
- ReadOnlyDictionary.cs
- ExtenderProvidedPropertyAttribute.cs
- StorageEndPropertyMapping.cs
- TreeNodeClickEventArgs.cs
- SQLChars.cs
- ParseChildrenAsPropertiesAttribute.cs
- VScrollProperties.cs
- PtsHelper.cs
- XD.cs
- RedistVersionInfo.cs
- CapabilitiesUse.cs
- DrawingImage.cs
- CharUnicodeInfo.cs
- TextClipboardData.cs
- TimeoutException.cs
- TextEditorLists.cs
- ZipIOFileItemStream.cs
- DataBindEngine.cs
- GeometryDrawing.cs
- TabControlEvent.cs
- IndexerNameAttribute.cs
- EventLogEntryCollection.cs
- AssemblyInfo.cs
- QilTargetType.cs
- ColorEditor.cs
- SoapElementAttribute.cs
- TextDecorationLocationValidation.cs
- WaitForChangedResult.cs
- DataObjectAttribute.cs
- FrameworkContentElement.cs
- Image.cs
- ManipulationLogic.cs
- MarkupProperty.cs
- DockingAttribute.cs
- BinaryFormatterWriter.cs
- PersonalizationProvider.cs
- Label.cs
- IfElseDesigner.xaml.cs
- MachineKeyConverter.cs
- DeferredSelectedIndexReference.cs
- XmlCodeExporter.cs
- ConfigurationConverterBase.cs
- QueryContext.cs
- FrameworkTextComposition.cs
- DataGridPageChangedEventArgs.cs
- TcpServerChannel.cs
- MenuScrollingVisibilityConverter.cs
- CultureMapper.cs
- Security.cs
- PropertyGridView.cs
- ManualResetEventSlim.cs
- RowParagraph.cs
- ServerIdentity.cs
- NonDualMessageSecurityOverHttpElement.cs
- ArrayExtension.cs
- CAGDesigner.cs
- SyncOperationState.cs
- WebReferencesBuildProvider.cs
- FillBehavior.cs
- CorrelationService.cs
- Publisher.cs