Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Utils.cs
- DataGridViewCellStyle.cs
- LayoutDump.cs
- ThreadAttributes.cs
- DataControlCommands.cs
- MethodCallExpression.cs
- __FastResourceComparer.cs
- CodePageEncoding.cs
- MasterPageCodeDomTreeGenerator.cs
- UIElementParagraph.cs
- QuaternionIndependentAnimationStorage.cs
- Convert.cs
- PagesChangedEventArgs.cs
- QueryParameter.cs
- AccessText.cs
- QilReplaceVisitor.cs
- DesignerFrame.cs
- CatalogPartCollection.cs
- CodeGeneratorOptions.cs
- coordinatorscratchpad.cs
- IisTraceWebEventProvider.cs
- ExpressionWriter.cs
- ExpressionTable.cs
- XmlSchemaException.cs
- DateTime.cs
- PeerToPeerException.cs
- MetafileHeader.cs
- WindowsStatic.cs
- DataGridViewSelectedRowCollection.cs
- BCryptHashAlgorithm.cs
- GetLastErrorDetailsRequest.cs
- ExpressionBuilderContext.cs
- DbConnectionPoolIdentity.cs
- XmlnsDefinitionAttribute.cs
- AbstractDataSvcMapFileLoader.cs
- LinqDataSourceContextEventArgs.cs
- UserControlFileEditor.cs
- AmbientProperties.cs
- SqlParameter.cs
- InkSerializer.cs
- SettingsPropertyNotFoundException.cs
- AuthenticationConfig.cs
- DataKey.cs
- IList.cs
- Hashtable.cs
- CodeEntryPointMethod.cs
- PaperSize.cs
- BindStream.cs
- TransactionFlowBindingElement.cs
- SpellerHighlightLayer.cs
- WindowsAuthenticationEventArgs.cs
- WindowAutomationPeer.cs
- SaveFileDialog.cs
- AssemblyAttributes.cs
- DbReferenceCollection.cs
- CodeAttributeDeclarationCollection.cs
- SerializableAttribute.cs
- BasePropertyDescriptor.cs
- TreeWalker.cs
- TagPrefixAttribute.cs
- HttpCapabilitiesSectionHandler.cs
- Baml2006KnownTypes.cs
- StatusCommandUI.cs
- TripleDES.cs
- OrthographicCamera.cs
- SecurityTokenAttachmentMode.cs
- CaseInsensitiveOrdinalStringComparer.cs
- Baml2006Reader.cs
- ObjectPersistData.cs
- HttpRequestTraceRecord.cs
- WebPartDisplayModeCollection.cs
- RequestCachePolicyConverter.cs
- Subset.cs
- RecordsAffectedEventArgs.cs
- LoginCancelEventArgs.cs
- StyleCollection.cs
- DependencyPropertyAttribute.cs
- PropertyGridCommands.cs
- HttpApplication.cs
- HttpHandlersSection.cs
- TableStyle.cs
- AdapterUtil.cs
- DataGridColumnHeaderAutomationPeer.cs
- UnmanagedMemoryStreamWrapper.cs
- ImageInfo.cs
- PageAsyncTask.cs
- OleDbParameter.cs
- StylusLogic.cs
- Header.cs
- TextSearch.cs
- InvokeHandlers.cs
- RubberbandSelector.cs
- ConditionedDesigner.cs
- SystemColorTracker.cs
- PlaceHolder.cs
- SafeRightsManagementHandle.cs
- BlurEffect.cs
- WindowPattern.cs
- NullReferenceException.cs
- DrawingServices.cs