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
- XPathNode.cs
- DictionaryEntry.cs
- AspNetHostingPermission.cs
- DesignerMetadata.cs
- TransportSecurityBindingElement.cs
- ConstraintManager.cs
- MemberHolder.cs
- DirectionalLight.cs
- ElementNotEnabledException.cs
- CodeAttributeArgumentCollection.cs
- WindowsSpinner.cs
- ReliableMessagingHelpers.cs
- WindowsImpersonationContext.cs
- HtmlTableCell.cs
- COM2ExtendedUITypeEditor.cs
- BigInt.cs
- HttpServerChannel.cs
- DNS.cs
- ComContractElement.cs
- MethodSet.cs
- InfoCardTrace.cs
- ObjectQueryExecutionPlan.cs
- MeasurementDCInfo.cs
- WebBrowserBase.cs
- MeasureItemEvent.cs
- ObjectSpanRewriter.cs
- ExpressionLexer.cs
- ItemsControlAutomationPeer.cs
- ContainerControl.cs
- CustomAttributeSerializer.cs
- UnsafeNativeMethods.cs
- BaseCodeDomTreeGenerator.cs
- BaseCollection.cs
- ScrollChrome.cs
- loginstatus.cs
- Unit.cs
- PermissionListSet.cs
- XPathDescendantIterator.cs
- AssociationSetEnd.cs
- TypeLoadException.cs
- FamilyMapCollection.cs
- CanonicalizationDriver.cs
- XmlLinkedNode.cs
- DoubleCollection.cs
- DefaultPrintController.cs
- FormatterServices.cs
- WinInetCache.cs
- SingleConverter.cs
- SubclassTypeValidator.cs
- NativeMethodsOther.cs
- SessionStateModule.cs
- TemplateGroupCollection.cs
- DropSource.cs
- Hex.cs
- XmlQueryRuntime.cs
- SlotInfo.cs
- InputBinding.cs
- ScriptManager.cs
- IsolatedStoragePermission.cs
- GridView.cs
- ReferenceService.cs
- RenderData.cs
- SelectionPatternIdentifiers.cs
- ChannelSettingsElement.cs
- ConfigXmlComment.cs
- ResourceReader.cs
- MenuStrip.cs
- HashLookup.cs
- ComponentResourceManager.cs
- IImplicitResourceProvider.cs
- ExpressionEvaluator.cs
- ValidatedControlConverter.cs
- HttpContextServiceHost.cs
- SimpleMailWebEventProvider.cs
- Label.cs
- HiddenField.cs
- ObjectListItem.cs
- ClientTarget.cs
- WebEvents.cs
- SQLBinaryStorage.cs
- HelpProvider.cs
- PropertyItem.cs
- CultureSpecificStringDictionary.cs
- HyperLinkField.cs
- XamlWriter.cs
- XamlPointCollectionSerializer.cs
- PerformanceCounter.cs
- StringValueSerializer.cs
- CodeCommentStatementCollection.cs
- EventLogEntryCollection.cs
- Path.cs
- Stack.cs
- DesigntimeLicenseContextSerializer.cs
- cookiecontainer.cs
- Authorization.cs
- DSASignatureDeformatter.cs
- PanelDesigner.cs
- CursorConverter.cs
- CorrelationTokenTypeConvertor.cs
- ProfileSettingsCollection.cs