Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- TransportContext.cs
- DesignerOptionService.cs
- SqlFileStream.cs
- ContentElement.cs
- AudioFormatConverter.cs
- PageThemeCodeDomTreeGenerator.cs
- MemoryStream.cs
- TypeUtils.cs
- IntegerFacetDescriptionElement.cs
- CollectionConverter.cs
- ExecutionContext.cs
- HTMLTagNameToTypeMapper.cs
- RootBuilder.cs
- ObjectDataSourceSelectingEventArgs.cs
- HandleCollector.cs
- TreeNodeMouseHoverEvent.cs
- WebConfigurationHostFileChange.cs
- CancellableEnumerable.cs
- TouchFrameEventArgs.cs
- DesignerTextWriter.cs
- MetroSerializationManager.cs
- InnerItemCollectionView.cs
- FormsAuthenticationCredentials.cs
- RuntimeHelpers.cs
- CustomPopupPlacement.cs
- ExpressionNode.cs
- InProcStateClientManager.cs
- LinqDataSourceInsertEventArgs.cs
- TickBar.cs
- StorageMappingFragment.cs
- unitconverter.cs
- CacheMode.cs
- SymbolMethod.cs
- GestureRecognitionResult.cs
- HideDisabledControlAdapter.cs
- SqlRowUpdatedEvent.cs
- DataObjectFieldAttribute.cs
- CommonDialog.cs
- DataServiceRequestException.cs
- PolyBezierSegment.cs
- SapiAttributeParser.cs
- EmptyReadOnlyDictionaryInternal.cs
- ProgressPage.cs
- SpotLight.cs
- LowerCaseStringConverter.cs
- SocketStream.cs
- MasterPageBuildProvider.cs
- SystemUnicastIPAddressInformation.cs
- AutomationAttributeInfo.cs
- UnsignedPublishLicense.cs
- WindowsSlider.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- HttpResponseInternalWrapper.cs
- MessageDecoder.cs
- OutputCacheProfile.cs
- FunctionUpdateCommand.cs
- PrimitiveSchema.cs
- ping.cs
- CipherData.cs
- ManipulationDelta.cs
- HostedTransportConfigurationManager.cs
- ToolTipService.cs
- _OverlappedAsyncResult.cs
- CatalogPartCollection.cs
- TraceHwndHost.cs
- DataSetMappper.cs
- TransactionOptions.cs
- ToolboxItemAttribute.cs
- BamlRecordReader.cs
- ProbeDuplexAsyncResult.cs
- SizeChangedInfo.cs
- UInt32Converter.cs
- SessionEndingCancelEventArgs.cs
- AbstractExpressions.cs
- TimeManager.cs
- ObfuscationAttribute.cs
- UrlEncodedParameterWriter.cs
- DrawingContextWalker.cs
- CodeStatementCollection.cs
- Image.cs
- ConfigXmlSignificantWhitespace.cs
- UnSafeCharBuffer.cs
- ServiceNotStartedException.cs
- DataObjectFieldAttribute.cs
- ExceptionWrapper.cs
- SqlConnectionHelper.cs
- DiscoveryInnerClientAdhoc11.cs
- TreeNodeCollection.cs
- FileDialogCustomPlace.cs
- TrustLevel.cs
- DataTablePropertyDescriptor.cs
- CultureSpecificStringDictionary.cs
- DeclarativeCatalogPartDesigner.cs
- DelegatedStream.cs
- hebrewshape.cs
- unsafenativemethodstextservices.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- FigureParaClient.cs
- LocatorPart.cs
- CopyAttributesAction.cs