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
- TypedReference.cs
- _UriTypeConverter.cs
- ScriptResourceAttribute.cs
- Zone.cs
- WindowsStatic.cs
- EndpointAddress.cs
- CalendarDateRange.cs
- SettingsPropertyWrongTypeException.cs
- PathGeometry.cs
- DesignerValidatorAdapter.cs
- UnmanagedMemoryStreamWrapper.cs
- XmlAttributeCollection.cs
- Socket.cs
- AttachmentCollection.cs
- CompensatableSequenceActivity.cs
- ResourceDisplayNameAttribute.cs
- PointAnimationBase.cs
- ParserOptions.cs
- CreateUserErrorEventArgs.cs
- RpcCryptoContext.cs
- XmlDataLoader.cs
- PointAnimationBase.cs
- QueryOptionExpression.cs
- InfiniteIntConverter.cs
- StackBuilderSink.cs
- CornerRadiusConverter.cs
- PersonalizationStateInfoCollection.cs
- TrustManagerPromptUI.cs
- HotSpot.cs
- RequestCachePolicyConverter.cs
- WeakReferenceKey.cs
- HtmlImage.cs
- ApplicationSecurityInfo.cs
- MissingFieldException.cs
- JournalNavigationScope.cs
- APCustomTypeDescriptor.cs
- HMACSHA512.cs
- TcpTransportSecurityElement.cs
- PropertyInfoSet.cs
- UnionCodeGroup.cs
- SafeHandles.cs
- DisableDpiAwarenessAttribute.cs
- CodeBlockBuilder.cs
- DispatcherObject.cs
- PathParser.cs
- RoleManagerSection.cs
- FormsAuthenticationCredentials.cs
- UnionCqlBlock.cs
- NonVisualControlAttribute.cs
- ReadOnlyDataSource.cs
- InternalSafeNativeMethods.cs
- ToolTipAutomationPeer.cs
- SmiContext.cs
- ControlBindingsCollection.cs
- COM2IPerPropertyBrowsingHandler.cs
- JsonObjectDataContract.cs
- TemplateControlCodeDomTreeGenerator.cs
- MemoryMappedFileSecurity.cs
- DataGridLinkButton.cs
- RightNameExpirationInfoPair.cs
- Site.cs
- WindowsRichEditRange.cs
- CapabilitiesSection.cs
- CollectionViewGroupRoot.cs
- IconConverter.cs
- Style.cs
- Annotation.cs
- SignatureConfirmationElement.cs
- Interop.cs
- TraceSection.cs
- InfoCardSymmetricAlgorithm.cs
- EntityClassGenerator.cs
- _ConnectStream.cs
- TextEditorTables.cs
- DialogResultConverter.cs
- SymbolPair.cs
- XmlElementCollection.cs
- SrgsSemanticInterpretationTag.cs
- ClientSession.cs
- GradientSpreadMethodValidation.cs
- SelectedGridItemChangedEvent.cs
- UInt16Converter.cs
- WinFormsComponentEditor.cs
- ImplicitInputBrush.cs
- ThemeableAttribute.cs
- WebBrowserNavigatedEventHandler.cs
- HttpListenerTimeoutManager.cs
- WaitForChangedResult.cs
- InternalResources.cs
- ConfigurationValue.cs
- TextMessageEncodingBindingElement.cs
- RequestCachingSection.cs
- WindowsAltTab.cs
- PkcsMisc.cs
- ListItemCollection.cs
- AspNetHostingPermission.cs
- RowToParametersTransformer.cs
- EdmProviderManifest.cs
- TraceSource.cs
- HwndHost.cs