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
- SoapClientMessage.cs
- SiteMapNodeItem.cs
- TriggerAction.cs
- IsolatedStoragePermission.cs
- PointLightBase.cs
- ListItemCollection.cs
- ContractsBCL.cs
- DBCommandBuilder.cs
- CngKey.cs
- InteropEnvironment.cs
- EntityViewGenerator.cs
- BindingBase.cs
- StringAnimationUsingKeyFrames.cs
- SelectionProviderWrapper.cs
- ZoneIdentityPermission.cs
- ThreadStartException.cs
- TemplatedAdorner.cs
- ServiceHttpHandlerFactory.cs
- ProfileSettings.cs
- PeerValidationBehavior.cs
- WebConfigurationFileMap.cs
- BitmapEffectState.cs
- TypedTableGenerator.cs
- COM2EnumConverter.cs
- Constraint.cs
- UidManager.cs
- XmlLinkedNode.cs
- ExtractorMetadata.cs
- PathFigure.cs
- WorkflowPersistenceService.cs
- Queue.cs
- UnsafeNativeMethods.cs
- QilXmlReader.cs
- XmlPropertyBag.cs
- WizardStepBase.cs
- LocatorManager.cs
- BitmapEffectGroup.cs
- ZipPackage.cs
- DictionaryEntry.cs
- ImageKeyConverter.cs
- EncoderParameter.cs
- InheritanceRules.cs
- WebPartTransformerCollection.cs
- DocumentViewer.cs
- HttpPostedFileBase.cs
- TextServicesManager.cs
- CatalogPartChrome.cs
- TemplateControl.cs
- MatrixUtil.cs
- Command.cs
- SqlParameter.cs
- ComboBoxDesigner.cs
- DataGridViewCell.cs
- HttpFileCollection.cs
- JoinElimination.cs
- DES.cs
- SqlGenericUtil.cs
- ErrorFormatterPage.cs
- SetStoryboardSpeedRatio.cs
- HttpBindingExtension.cs
- HttpServerVarsCollection.cs
- XmlSchemaCollection.cs
- TabletDevice.cs
- WrappedDispatcherException.cs
- FigureParagraph.cs
- ValidationErrorEventArgs.cs
- RelatedEnd.cs
- ExceptQueryOperator.cs
- OleDbPermission.cs
- NameService.cs
- TextEffectResolver.cs
- AssertSection.cs
- DataSourceHelper.cs
- UmAlQuraCalendar.cs
- LambdaCompiler.Logical.cs
- ContractUtils.cs
- HTTPAPI_VERSION.cs
- XamlTreeBuilder.cs
- CookieParameter.cs
- ListView.cs
- PtsCache.cs
- InputLangChangeEvent.cs
- HtmlWindow.cs
- tibetanshape.cs
- MemberRestriction.cs
- PackWebRequestFactory.cs
- ExtendedPropertyDescriptor.cs
- ButtonField.cs
- IPPacketInformation.cs
- TargetFrameworkAttribute.cs
- UntypedNullExpression.cs
- MarginsConverter.cs
- WebPartVerbCollection.cs
- XappLauncher.cs
- ToolTip.cs
- ByeMessageCD1.cs
- BitmapCodecInfo.cs
- ContextStaticAttribute.cs
- Application.cs
- InputScopeNameConverter.cs