Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- AssertFilter.cs
- HtmlLink.cs
- TimerElapsedEvenArgs.cs
- EntityViewContainer.cs
- DataIdProcessor.cs
- DbConnectionStringBuilder.cs
- SamlConstants.cs
- ClipboardData.cs
- LogExtentCollection.cs
- SoapAttributes.cs
- Win32PrintDialog.cs
- FormatterServices.cs
- TypeConverterValueSerializer.cs
- RangeContentEnumerator.cs
- MetaTableHelper.cs
- control.ime.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- CodeAssignStatement.cs
- WinEventHandler.cs
- DecimalFormatter.cs
- DataGridViewSortCompareEventArgs.cs
- DropShadowEffect.cs
- ScrollBarRenderer.cs
- Decimal.cs
- XamlToRtfParser.cs
- XmlElementList.cs
- RoleService.cs
- XPathNodeInfoAtom.cs
- StoreAnnotationsMap.cs
- DbReferenceCollection.cs
- SimpleModelProvider.cs
- CodeAttributeDeclaration.cs
- WebHeaderCollection.cs
- TextTreeExtractElementUndoUnit.cs
- ErrorHandlerModule.cs
- rsa.cs
- SqlBinder.cs
- GridPatternIdentifiers.cs
- Variant.cs
- SHA512.cs
- ControlEvent.cs
- DocumentViewerBaseAutomationPeer.cs
- WebScriptServiceHostFactory.cs
- StandardBindingCollectionElement.cs
- CollectionBuilder.cs
- KerberosRequestorSecurityToken.cs
- DocumentPageHost.cs
- ConfigurationValidatorBase.cs
- UriExt.cs
- MachineKeyConverter.cs
- DuplexChannelBinder.cs
- StubHelpers.cs
- _ProxyRegBlob.cs
- glyphs.cs
- SecurityCriticalDataForSet.cs
- IntSecurity.cs
- _NetRes.cs
- LinqDataSourceUpdateEventArgs.cs
- HandlerFactoryWrapper.cs
- ResourceWriter.cs
- DropDownList.cs
- SliderAutomationPeer.cs
- UriTemplateCompoundPathSegment.cs
- ApplicationInfo.cs
- FontSourceCollection.cs
- Stackframe.cs
- smtppermission.cs
- OperationAbortedException.cs
- PersistenceException.cs
- RuleCache.cs
- BordersPage.cs
- DataContractSerializerFaultFormatter.cs
- DocumentReference.cs
- ActivityDesignerLayoutSerializers.cs
- TextHidden.cs
- ReadOnlyPermissionSet.cs
- DrawingContextWalker.cs
- UserControlDesigner.cs
- EncodingNLS.cs
- httpstaticobjectscollection.cs
- StringReader.cs
- ProcessHostMapPath.cs
- ExceptQueryOperator.cs
- BevelBitmapEffect.cs
- RecognitionResult.cs
- UTF32Encoding.cs
- SiblingIterators.cs
- PropertySegmentSerializationProvider.cs
- DataServiceRequestException.cs
- oledbmetadatacolumnnames.cs
- EntryIndex.cs
- DocumentApplicationState.cs
- GeneralTransformCollection.cs
- DataServiceQueryException.cs
- CodeChecksumPragma.cs
- AsymmetricSignatureDeformatter.cs
- BackgroundFormatInfo.cs
- SessionEndingCancelEventArgs.cs
- PropertyPathConverter.cs
- ServiceReflector.cs