Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripMenuItemCodeDomSerializer.cs / 1 / ToolStripMenuItemCodeDomSerializer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ToolStripMenuItemCodeDomSerializer..ctor()")] namespace System.Windows.Forms.Design { using System; using System.Diagnostics; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; ////// The Reason for having a CustomSerializer for ToolStripMenuItem is the existance of Dummy ToolStripMenuItem for ContextMenuStrips. /// We add this Dummy ToolStripMenuItem on the "Non Site" ToolStrip to Host the DropDown which facilitates the entry of New MenuItems. /// These items are then added to the ContextMenuStrip that we are designing. /// But we dont want the Dummy ToolStripMenuItem to Serialize and hence the need for this Custom Serializer. /// internal class ToolStripMenuItemCodeDomSerializer : System.ComponentModel.Design.Serialization.CodeDomSerializer { ////// We implement this for the abstract method on CodeDomSerializer. /// public override object Deserialize(IDesignerSerializationManager manager, object codeObject) { return GetBaseSerializer(manager).Deserialize(manager, codeObject); } ////// This is a small helper method that returns the serializer for base Class /// private CodeDomSerializer GetBaseSerializer(IDesignerSerializationManager manager) { return (CodeDomSerializer)manager.GetSerializer(typeof(Component), typeof(CodeDomSerializer)); } ////// /// We implement this for the abstract method on CodeDomSerializer. This method /// takes an object graph, and serializes the object into CodeDom elements. /// public override object Serialize(IDesignerSerializationManager manager, object value) { ToolStripMenuItem item = value as ToolStripMenuItem; ToolStrip parent = item.GetCurrentParent() as ToolStrip; //Dont Serialize if we are Dummy Item ... if ((item != null) && !(item.IsOnDropDown) && (parent != null) && (parent .Site == null)) { //dont serialize anything... return null; } else { CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(ImageList).BaseType, typeof(CodeDomSerializer)); return baseSerializer.Serialize(manager, value); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MetroSerializationManager.cs
- ActivityCodeDomSerializationManager.cs
- LinqDataSourceDisposeEventArgs.cs
- XmlEncodedRawTextWriter.cs
- WindowsFont.cs
- OracleParameterBinding.cs
- PolicyManager.cs
- IPCCacheManager.cs
- LineSegment.cs
- SoapParser.cs
- SHA1Managed.cs
- ExceptionHandler.cs
- Point3DCollection.cs
- AspNetSynchronizationContext.cs
- ListQueryResults.cs
- FunctionImportMapping.cs
- WizardSideBarListControlItem.cs
- X509Chain.cs
- ControlTemplate.cs
- BitmapFrameEncode.cs
- Splitter.cs
- selecteditemcollection.cs
- EntityClientCacheEntry.cs
- ErrorLog.cs
- PictureBox.cs
- WebPartUserCapability.cs
- Thread.cs
- StagingAreaInputItem.cs
- SqlParameterizer.cs
- MonthChangedEventArgs.cs
- MultipartContentParser.cs
- CommandBindingCollection.cs
- TableFieldsEditor.cs
- HMACSHA1.cs
- XmlAttributeAttribute.cs
- Visual3D.cs
- HwndAppCommandInputProvider.cs
- ScriptResourceAttribute.cs
- SystemIPv6InterfaceProperties.cs
- DataGridCaption.cs
- SoapInteropTypes.cs
- Int64AnimationUsingKeyFrames.cs
- ScrollItemProviderWrapper.cs
- ControlEvent.cs
- GuidConverter.cs
- ContextBase.cs
- Bits.cs
- FormClosedEvent.cs
- LineGeometry.cs
- Int64AnimationUsingKeyFrames.cs
- CoTaskMemUnicodeSafeHandle.cs
- FormViewInsertedEventArgs.cs
- AgileSafeNativeMemoryHandle.cs
- TableRow.cs
- TransactionContext.cs
- SerializationStore.cs
- ToolStripEditorManager.cs
- ObjectMemberMapping.cs
- GroupBox.cs
- ClosableStream.cs
- Package.cs
- ClientSettingsSection.cs
- ResourceExpressionBuilder.cs
- MetadataResolver.cs
- FunctionNode.cs
- ScriptingAuthenticationServiceSection.cs
- ValueQuery.cs
- SoapRpcServiceAttribute.cs
- SerializationFieldInfo.cs
- InertiaRotationBehavior.cs
- ThemeableAttribute.cs
- EntityContainerEmitter.cs
- RuntimeConfigurationRecord.cs
- _NestedMultipleAsyncResult.cs
- SmtpAuthenticationManager.cs
- JsonEncodingStreamWrapper.cs
- Compress.cs
- MetabaseSettingsIis7.cs
- XmlQualifiedNameTest.cs
- Vector3DAnimation.cs
- XsdBuilder.cs
- MappingException.cs
- AccessDataSourceView.cs
- Boolean.cs
- LongValidatorAttribute.cs
- DataControlField.cs
- WebPartZoneCollection.cs
- QuotedStringWriteStateInfo.cs
- SecurityHeaderElementInferenceEngine.cs
- BindStream.cs
- RtfFormatStack.cs
- ErasingStroke.cs
- HebrewNumber.cs
- SrgsRuleRef.cs
- ToolStripPanelCell.cs
- MDIControlStrip.cs
- HttpWebResponse.cs
- columnmapkeybuilder.cs
- DelegateBodyWriter.cs
- HtmlTableRow.cs