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
- X509CertificateValidator.cs
- SafeNativeMethods.cs
- ContentValidator.cs
- XmlNavigatorFilter.cs
- MessageSmuggler.cs
- IgnoreFileBuildProvider.cs
- DelegateTypeInfo.cs
- FixedStringLookup.cs
- RequestQueryParser.cs
- Triplet.cs
- NavigatorOutput.cs
- KeyedHashAlgorithm.cs
- ExpandedWrapper.cs
- streamingZipPartStream.cs
- LinearKeyFrames.cs
- EnumType.cs
- XPathItem.cs
- CompilationSection.cs
- ServerIdentity.cs
- _Rfc2616CacheValidators.cs
- RuntimeIdentifierPropertyAttribute.cs
- WorkflowPersistenceService.cs
- ManipulationStartedEventArgs.cs
- RuntimeArgumentHandle.cs
- ProjectedSlot.cs
- EventLogger.cs
- CapabilitiesAssignment.cs
- X509ChainPolicy.cs
- MessageQueuePermissionEntry.cs
- _Events.cs
- FrameDimension.cs
- HandledEventArgs.cs
- TextParagraph.cs
- SortedList.cs
- MessageQueuePermissionEntryCollection.cs
- SamlSubjectStatement.cs
- ActivityCodeDomSerializer.cs
- PenCursorManager.cs
- ByteAnimationUsingKeyFrames.cs
- ChannelAcceptor.cs
- Ticks.cs
- IdentityReference.cs
- ArrayElementGridEntry.cs
- HttpWrapper.cs
- MailFileEditor.cs
- ListChangedEventArgs.cs
- ResourceWriter.cs
- ToolStripDropDownItem.cs
- NetStream.cs
- ResizeBehavior.cs
- TextTreeTextBlock.cs
- SharedTcpTransportManager.cs
- ConnectionStringSettingsCollection.cs
- FontStyle.cs
- ListControl.cs
- BaseProcessor.cs
- ValidatorCompatibilityHelper.cs
- DispatcherProcessingDisabled.cs
- ReflectionServiceProvider.cs
- ToolStripDropDownItem.cs
- CompilerParameters.cs
- SafeLibraryHandle.cs
- RepeatBehavior.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- DataErrorValidationRule.cs
- updateconfighost.cs
- ClearCollection.cs
- sqlnorm.cs
- RbTree.cs
- ObjectDataSourceSelectingEventArgs.cs
- ApplicationInfo.cs
- BindingExpression.cs
- DesignBindingPicker.cs
- FormViewDeletedEventArgs.cs
- BufferedGraphicsManager.cs
- SmiMetaDataProperty.cs
- BamlReader.cs
- DataGridViewRowCancelEventArgs.cs
- SaveFileDialog.cs
- WindowsListViewGroup.cs
- LinearQuaternionKeyFrame.cs
- XmlArrayItemAttributes.cs
- ProvidersHelper.cs
- Command.cs
- JapaneseCalendar.cs
- SafeFileHandle.cs
- AdPostCacheSubstitution.cs
- OleDbParameter.cs
- _ProxyRegBlob.cs
- TabControlEvent.cs
- DesignerEditorPartChrome.cs
- PrintingPermission.cs
- XmlCountingReader.cs
- ExecutionContext.cs
- WebBrowserContainer.cs
- SecurityElement.cs
- SecurityTokenTypes.cs
- AccessibilityApplicationManager.cs
- SerializerDescriptor.cs
- ObjectTag.cs