Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / AppModel / ResourceContainer.cs / 1305600 / ResourceContainer.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // ResourceContainer is an implementation of the abstract Package class. // It contains nontrivial overrides for GetPartCore and Exists. // Many of the methods on Package are not applicable to loading application // resources, so the ResourceContainer implementations of these methods throw // the NotSupportedException. // // History: // 10/04/2004: [....]: Initial creation. // 03/15/2005: BruceMac: Remove DisposeCore() override since there are no resources // to release. // 06/16/2005: WeibZ, Remove DefaultResourceManager, and change the role of // ResourceManagerWrapper. //----------------------------------------------------------------------------- using System; using System.IO.Packaging; using System.IO; using System.Collections.Generic; using System.Windows.Resources; using System.Resources; using System.Reflection; using System.Globalization; using MS.Internal.PresentationFramework; // SafeSecurityHelper using System.Windows; using System.Windows.Navigation; using MS.Internal.Resources; using System.Windows.Interop; using System.Security; namespace MS.Internal.AppModel { //// ResourceContainer is an implementation of the abstract Package class. // It contains nontrivial overrides for GetPartCore and Exists. // Many of the methods on Package are not applicable to loading application // resources, so the ResourceContainer implementations of these methods throw // the NotSupportedException. // internal class ResourceContainer : System.IO.Packaging.Package { //----------------------------------------------------- // // Static Methods // //----------------------------------------------------- #region Static Methods internal static ResourceManagerWrapper ApplicationResourceManagerWrapper { get { if (_applicationResourceManagerWrapper == null) { // load main excutable assembly Assembly asmApplication = Application.ResourceAssembly; if (asmApplication != null) { _applicationResourceManagerWrapper = new ResourceManagerWrapper(asmApplication); } } return _applicationResourceManagerWrapper; } } //// The FileShare mode to use for opening loose files. Currently this defaults to FileShare.Read // Today it is not changed. If we decide that this should change in the future we can easily add // a seter here. // internal static FileShare FileShare { get { return _fileShare; } } #endregion //------------------------------------------------------ // // Public Constructors // //----------------------------------------------------- #region Public Constructors //// Default Constructor // internal ResourceContainer() : base(FileAccess.Read) { } #endregion //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ // None //----------------------------------------------------- // // Public Methods // //------------------------------------------------------ #region Public Methods //// This method always returns true. This is because ResourceManager does not have a // simple way to check if a resource exists without loading the resource stream (or failing to) // so checking if a resource exists would be a very expensive task. // A part will later be constructed and returned by GetPart(). This part class contains // a ResourceManager which may or may not contain the requested resource. When someone // calls GetStream() on PackagePart then we will attempt to get the stream for the named resource // and potentially fail. // // //public override bool PartExists(Uri uri) { return true; } #endregion //----------------------------------------------------- // // Public Events // //----------------------------------------------------- // None //----------------------------------------------------- // // Internal Constructors // //------------------------------------------------------ // None //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Members internal const string XamlExt = ".xaml"; internal const string BamlExt = ".baml"; #endregion //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- // None //------------------------------------------------------ // // Internal Events // //----------------------------------------------------- // None //----------------------------------------------------- // // Protected Constructors // //----------------------------------------------------- // None //------------------------------------------------------ // // Protected Methods // //----------------------------------------------------- #region Protected Methods // // This method creates a part containing the name of the resource and // the resource manager that should contain it. If the resource manager // does not contain the requested part then when GetStream() is called on // the part it will return null. // // ///// /// 1. Critical - because calling add_AssemblyLoad /// Safe - because only hooks up specific internal event handler only applicable to for non-browser hosted scneario /// 2. Critical - because creating a new ResourcePart is critical, as the ResourceManagerWrapper /// that it uses has an Assembly instance that is SecurityCritical data for accessing internal types. /// Safe - because a ResourceManagerWrapper is being created based on a Uri name that gets mapped /// to an assembly from which a stream for the Uri was created and GetResourceManagerWrapper /// guarantees that given a Uri, the stream is always created from that mapped Assembly /// [SecurityCritical, SecurityTreatAsSafe] protected override PackagePart GetPartCore(Uri uri) { string partName; bool isContentFile; // AppDomain.AssemblyLoad event handler for standalone apps. This is added specifically for designer (Sparkle) scenario. // We use the assembly name to fetch the cached resource manager. With this mechanism we will still get resource from the // old version dll when a newer one is loaded. So whenever the AssemblyLoad event is fired, we will need to update the cache // with the newly loaded assembly. This is currently only for designer so not needed for browser hosted apps. // Attach the event handler before the first time we get the ResourceManagerWrapper. if ((! assemblyLoadhandlerAttached) && (! BrowserInteropHelper.IsBrowserHosted)) { AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoadEventHandler); assemblyLoadhandlerAttached = true; } ResourceManagerWrapper rmWrapper = GetResourceManagerWrapper(uri, out partName, out isContentFile); // If the part name was specified as Content at compile time then we will try to load // the file directly. Otherwise we assume the user is looking for a resource. if (isContentFile) { return new ContentFilePart(this, uri); } else { // Uri mapps to a resource stream. // Make sure the resource id is exactly same as the one we used to create Resource // at compile time. partName = ResourceIDHelper.GetResourceIDFromRelativePath(partName); return new ResourcePart(this, uri, partName, rmWrapper); } } #endregion //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ #region Private Methods // AppDomain.AssemblyLoad event handler. Check whether the assembly's resourcemanager has // been added to the cache. If it has, we need to update the cache with the newly loaded dll. private void OnAssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args) { Assembly assembly = args.LoadedAssembly; // This is specific for designer (Sparkle) scenario: rebuild and reload dll using Load(Byte[]). // We do not care about assemblies loaded into the reflection-only context or the Gaced assemblies. // For example, in Sparkle whenever a project is built all dependent assemblies will be loaded reflection only. // We do no care about those. Only when a assembly is loaded into the execution context, we will need to update the cache. if ((! assembly.ReflectionOnly) && (! assembly.GlobalAssemblyCache)) { AssemblyName assemblyInfo = new AssemblyName(assembly.FullName); string assemblyName = assemblyInfo.Name.ToLowerInvariant(); string assemblyKey = string.Empty; string key = assemblyName; // Check if this newly loaded assembly is in the cache. If so, update the cache. // If it is not in cache, do not do anything. It will be added on demand. // The key could be Name, Name + Version, Name + PublicKeyToken, or Name + Version + PublicKeyToken. // Otherwise, update the cache with the newly loaded dll. // First check Name. UpdateCachedRMW(key, args.LoadedAssembly); string assemblyVersion = assemblyInfo.Version.ToString(); if (!String.IsNullOrEmpty(assemblyVersion)) { key = key + assemblyVersion; // Check Name + Version UpdateCachedRMW(key, args.LoadedAssembly); } byte[] reqKeyToken = assemblyInfo.GetPublicKeyToken(); for (int i = 0; i < reqKeyToken.Length; i++) { assemblyKey += reqKeyToken[i].ToString("x", NumberFormatInfo.InvariantInfo); } if (!String.IsNullOrEmpty(assemblyKey)) { key = key + assemblyKey; // Check Name + Version + KeyToken UpdateCachedRMW(key, args.LoadedAssembly); key = assemblyName + assemblyKey; // Check Name + KeyToken UpdateCachedRMW(key, args.LoadedAssembly); } } } private void UpdateCachedRMW(string key, Assembly assembly) { if (_registeredResourceManagers.ContainsKey(key)) { // Update the ResourceManagerWrapper with the new assembly. // Note Package caches Part and Part holds on to ResourceManagerWrapper. Package does not provide a way for // us to update their cache, so we update the assembly that the ResourceManagerWrapper holds on to. This way the // Part cached in the Package class can reference the new dll too. _registeredResourceManagers[key].Assembly = assembly; } } //// Searches the available ResourceManagerWrapper list for one that matches the given Uri. // It could be either ResourceManagerWrapper for specific libary assembly or Application // main assembly. Package enforces that all Uri will be correctly formated. // // Assumed to be relative // The name of the file in the resource manager // A flag to indicate that this path is a known loose file at compile time //private ResourceManagerWrapper GetResourceManagerWrapper(Uri uri, out string partName, out bool isContentFile) { string assemblyName; string assemblyVersion; string assemblyKey; ResourceManagerWrapper rmwResult = ApplicationResourceManagerWrapper; isContentFile = false; BaseUriHelper.GetAssemblyNameAndPart(uri, out partName, out assemblyName, out assemblyVersion, out assemblyKey); if (!String.IsNullOrEmpty(assemblyName)) { string key = assemblyName + assemblyVersion + assemblyKey; _registeredResourceManagers.TryGetValue(key.ToLowerInvariant(), out rmwResult); // first time. Add this to the hash table if (rmwResult == null) { Assembly assembly; assembly = BaseUriHelper.GetLoadedAssembly(assemblyName, assemblyVersion, assemblyKey); if (assembly.Equals(Application.ResourceAssembly)) { // This Uri maps to Application Entry assembly even though it has ";component". rmwResult = ApplicationResourceManagerWrapper; } else { rmwResult = new ResourceManagerWrapper(assembly); } _registeredResourceManagers[key.ToLowerInvariant()] = rmwResult; } } if ((rmwResult == ApplicationResourceManagerWrapper)) { if (rmwResult != null) { // If this is not a resource from a component then it might be // a content file and not an application resource. if (ContentFileHelper.IsContentFile(partName)) { isContentFile = true; rmwResult = null; } } else { // Throw when Application.ResourceAssembly is null. throw new IOException(SR.Get(SRID.EntryAssemblyIsNull)); } } return rmwResult; } #endregion //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Members private static Dictionary _registeredResourceManagers = new Dictionary (); private static ResourceManagerWrapper _applicationResourceManagerWrapper = null; private static FileShare _fileShare = FileShare.Read; private static bool assemblyLoadhandlerAttached = false; #endregion Private Members //----------------------------------------------------- // // Uninteresting (but required) overrides // //----------------------------------------------------- #region Uninteresting (but required) overrides protected override PackagePart CreatePartCore(Uri uri, string contentType, CompressionOption compressionOption) { return null; } protected override void DeletePartCore(Uri uri) { throw new NotSupportedException(); } protected override PackagePart[] GetPartsCore() { throw new NotSupportedException(); } protected override void FlushCore() { throw new NotSupportedException(); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // ResourceContainer is an implementation of the abstract Package class. // It contains nontrivial overrides for GetPartCore and Exists. // Many of the methods on Package are not applicable to loading application // resources, so the ResourceContainer implementations of these methods throw // the NotSupportedException. // // History: // 10/04/2004: [....]: Initial creation. // 03/15/2005: BruceMac: Remove DisposeCore() override since there are no resources // to release. // 06/16/2005: WeibZ, Remove DefaultResourceManager, and change the role of // ResourceManagerWrapper. //----------------------------------------------------------------------------- using System; using System.IO.Packaging; using System.IO; using System.Collections.Generic; using System.Windows.Resources; using System.Resources; using System.Reflection; using System.Globalization; using MS.Internal.PresentationFramework; // SafeSecurityHelper using System.Windows; using System.Windows.Navigation; using MS.Internal.Resources; using System.Windows.Interop; using System.Security; namespace MS.Internal.AppModel { //// ResourceContainer is an implementation of the abstract Package class. // It contains nontrivial overrides for GetPartCore and Exists. // Many of the methods on Package are not applicable to loading application // resources, so the ResourceContainer implementations of these methods throw // the NotSupportedException. // internal class ResourceContainer : System.IO.Packaging.Package { //----------------------------------------------------- // // Static Methods // //----------------------------------------------------- #region Static Methods internal static ResourceManagerWrapper ApplicationResourceManagerWrapper { get { if (_applicationResourceManagerWrapper == null) { // load main excutable assembly Assembly asmApplication = Application.ResourceAssembly; if (asmApplication != null) { _applicationResourceManagerWrapper = new ResourceManagerWrapper(asmApplication); } } return _applicationResourceManagerWrapper; } } //// The FileShare mode to use for opening loose files. Currently this defaults to FileShare.Read // Today it is not changed. If we decide that this should change in the future we can easily add // a seter here. // internal static FileShare FileShare { get { return _fileShare; } } #endregion //------------------------------------------------------ // // Public Constructors // //----------------------------------------------------- #region Public Constructors //// Default Constructor // internal ResourceContainer() : base(FileAccess.Read) { } #endregion //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ // None //----------------------------------------------------- // // Public Methods // //------------------------------------------------------ #region Public Methods //// This method always returns true. This is because ResourceManager does not have a // simple way to check if a resource exists without loading the resource stream (or failing to) // so checking if a resource exists would be a very expensive task. // A part will later be constructed and returned by GetPart(). This part class contains // a ResourceManager which may or may not contain the requested resource. When someone // calls GetStream() on PackagePart then we will attempt to get the stream for the named resource // and potentially fail. // // //public override bool PartExists(Uri uri) { return true; } #endregion //----------------------------------------------------- // // Public Events // //----------------------------------------------------- // None //----------------------------------------------------- // // Internal Constructors // //------------------------------------------------------ // None //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Members internal const string XamlExt = ".xaml"; internal const string BamlExt = ".baml"; #endregion //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- // None //------------------------------------------------------ // // Internal Events // //----------------------------------------------------- // None //----------------------------------------------------- // // Protected Constructors // //----------------------------------------------------- // None //------------------------------------------------------ // // Protected Methods // //----------------------------------------------------- #region Protected Methods // // This method creates a part containing the name of the resource and // the resource manager that should contain it. If the resource manager // does not contain the requested part then when GetStream() is called on // the part it will return null. // // ///// /// 1. Critical - because calling add_AssemblyLoad /// Safe - because only hooks up specific internal event handler only applicable to for non-browser hosted scneario /// 2. Critical - because creating a new ResourcePart is critical, as the ResourceManagerWrapper /// that it uses has an Assembly instance that is SecurityCritical data for accessing internal types. /// Safe - because a ResourceManagerWrapper is being created based on a Uri name that gets mapped /// to an assembly from which a stream for the Uri was created and GetResourceManagerWrapper /// guarantees that given a Uri, the stream is always created from that mapped Assembly /// [SecurityCritical, SecurityTreatAsSafe] protected override PackagePart GetPartCore(Uri uri) { string partName; bool isContentFile; // AppDomain.AssemblyLoad event handler for standalone apps. This is added specifically for designer (Sparkle) scenario. // We use the assembly name to fetch the cached resource manager. With this mechanism we will still get resource from the // old version dll when a newer one is loaded. So whenever the AssemblyLoad event is fired, we will need to update the cache // with the newly loaded assembly. This is currently only for designer so not needed for browser hosted apps. // Attach the event handler before the first time we get the ResourceManagerWrapper. if ((! assemblyLoadhandlerAttached) && (! BrowserInteropHelper.IsBrowserHosted)) { AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(OnAssemblyLoadEventHandler); assemblyLoadhandlerAttached = true; } ResourceManagerWrapper rmWrapper = GetResourceManagerWrapper(uri, out partName, out isContentFile); // If the part name was specified as Content at compile time then we will try to load // the file directly. Otherwise we assume the user is looking for a resource. if (isContentFile) { return new ContentFilePart(this, uri); } else { // Uri mapps to a resource stream. // Make sure the resource id is exactly same as the one we used to create Resource // at compile time. partName = ResourceIDHelper.GetResourceIDFromRelativePath(partName); return new ResourcePart(this, uri, partName, rmWrapper); } } #endregion //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ #region Private Methods // AppDomain.AssemblyLoad event handler. Check whether the assembly's resourcemanager has // been added to the cache. If it has, we need to update the cache with the newly loaded dll. private void OnAssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args) { Assembly assembly = args.LoadedAssembly; // This is specific for designer (Sparkle) scenario: rebuild and reload dll using Load(Byte[]). // We do not care about assemblies loaded into the reflection-only context or the Gaced assemblies. // For example, in Sparkle whenever a project is built all dependent assemblies will be loaded reflection only. // We do no care about those. Only when a assembly is loaded into the execution context, we will need to update the cache. if ((! assembly.ReflectionOnly) && (! assembly.GlobalAssemblyCache)) { AssemblyName assemblyInfo = new AssemblyName(assembly.FullName); string assemblyName = assemblyInfo.Name.ToLowerInvariant(); string assemblyKey = string.Empty; string key = assemblyName; // Check if this newly loaded assembly is in the cache. If so, update the cache. // If it is not in cache, do not do anything. It will be added on demand. // The key could be Name, Name + Version, Name + PublicKeyToken, or Name + Version + PublicKeyToken. // Otherwise, update the cache with the newly loaded dll. // First check Name. UpdateCachedRMW(key, args.LoadedAssembly); string assemblyVersion = assemblyInfo.Version.ToString(); if (!String.IsNullOrEmpty(assemblyVersion)) { key = key + assemblyVersion; // Check Name + Version UpdateCachedRMW(key, args.LoadedAssembly); } byte[] reqKeyToken = assemblyInfo.GetPublicKeyToken(); for (int i = 0; i < reqKeyToken.Length; i++) { assemblyKey += reqKeyToken[i].ToString("x", NumberFormatInfo.InvariantInfo); } if (!String.IsNullOrEmpty(assemblyKey)) { key = key + assemblyKey; // Check Name + Version + KeyToken UpdateCachedRMW(key, args.LoadedAssembly); key = assemblyName + assemblyKey; // Check Name + KeyToken UpdateCachedRMW(key, args.LoadedAssembly); } } } private void UpdateCachedRMW(string key, Assembly assembly) { if (_registeredResourceManagers.ContainsKey(key)) { // Update the ResourceManagerWrapper with the new assembly. // Note Package caches Part and Part holds on to ResourceManagerWrapper. Package does not provide a way for // us to update their cache, so we update the assembly that the ResourceManagerWrapper holds on to. This way the // Part cached in the Package class can reference the new dll too. _registeredResourceManagers[key].Assembly = assembly; } } //// Searches the available ResourceManagerWrapper list for one that matches the given Uri. // It could be either ResourceManagerWrapper for specific libary assembly or Application // main assembly. Package enforces that all Uri will be correctly formated. // // Assumed to be relative // The name of the file in the resource manager // A flag to indicate that this path is a known loose file at compile time //private ResourceManagerWrapper GetResourceManagerWrapper(Uri uri, out string partName, out bool isContentFile) { string assemblyName; string assemblyVersion; string assemblyKey; ResourceManagerWrapper rmwResult = ApplicationResourceManagerWrapper; isContentFile = false; BaseUriHelper.GetAssemblyNameAndPart(uri, out partName, out assemblyName, out assemblyVersion, out assemblyKey); if (!String.IsNullOrEmpty(assemblyName)) { string key = assemblyName + assemblyVersion + assemblyKey; _registeredResourceManagers.TryGetValue(key.ToLowerInvariant(), out rmwResult); // first time. Add this to the hash table if (rmwResult == null) { Assembly assembly; assembly = BaseUriHelper.GetLoadedAssembly(assemblyName, assemblyVersion, assemblyKey); if (assembly.Equals(Application.ResourceAssembly)) { // This Uri maps to Application Entry assembly even though it has ";component". rmwResult = ApplicationResourceManagerWrapper; } else { rmwResult = new ResourceManagerWrapper(assembly); } _registeredResourceManagers[key.ToLowerInvariant()] = rmwResult; } } if ((rmwResult == ApplicationResourceManagerWrapper)) { if (rmwResult != null) { // If this is not a resource from a component then it might be // a content file and not an application resource. if (ContentFileHelper.IsContentFile(partName)) { isContentFile = true; rmwResult = null; } } else { // Throw when Application.ResourceAssembly is null. throw new IOException(SR.Get(SRID.EntryAssemblyIsNull)); } } return rmwResult; } #endregion //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Members private static Dictionary _registeredResourceManagers = new Dictionary (); private static ResourceManagerWrapper _applicationResourceManagerWrapper = null; private static FileShare _fileShare = FileShare.Read; private static bool assemblyLoadhandlerAttached = false; #endregion Private Members //----------------------------------------------------- // // Uninteresting (but required) overrides // //----------------------------------------------------- #region Uninteresting (but required) overrides protected override PackagePart CreatePartCore(Uri uri, string contentType, CompressionOption compressionOption) { return null; } protected override void DeletePartCore(Uri uri) { throw new NotSupportedException(); } protected override PackagePart[] GetPartsCore() { throw new NotSupportedException(); } protected override void FlushCore() { throw new NotSupportedException(); } #endregion } } // 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
- Expander.cs
- ServicePointManager.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- fixedPageContentExtractor.cs
- WSTrustFeb2005.cs
- mda.cs
- DiscreteKeyFrames.cs
- WmpBitmapDecoder.cs
- ManipulationLogic.cs
- WebPartDisplayMode.cs
- SecurityManager.cs
- TypeRefElement.cs
- AnimationLayer.cs
- ClosableStream.cs
- RequestStatusBarUpdateEventArgs.cs
- oledbconnectionstring.cs
- DataRowView.cs
- CircleHotSpot.cs
- HashLookup.cs
- AsyncStreamReader.cs
- RecognizerBase.cs
- StylusPointPropertyId.cs
- MimeFormImporter.cs
- ContainerParagraph.cs
- Operators.cs
- ConnectionStringSettingsCollection.cs
- CapabilitiesUse.cs
- CodeSnippetStatement.cs
- FaultBookmark.cs
- SvcMapFileLoader.cs
- XmlSchemaAnnotation.cs
- Graph.cs
- HashAlgorithm.cs
- SID.cs
- PerformanceCounterPermissionAttribute.cs
- StylusButtonEventArgs.cs
- DocumentReference.cs
- ParserStreamGeometryContext.cs
- Page.cs
- ByteStreamMessageEncodingElement.cs
- ProfileService.cs
- RuntimeConfigLKG.cs
- MsmqInputChannel.cs
- OdbcConnectionStringbuilder.cs
- TabPanel.cs
- NumberFormatter.cs
- CustomDictionarySources.cs
- ArglessEventHandlerProxy.cs
- ConnectionStringsSection.cs
- DummyDataSource.cs
- SoapHelper.cs
- XmlSchemaRedefine.cs
- SpellerHighlightLayer.cs
- DataViewManager.cs
- ScrollBarRenderer.cs
- EFColumnProvider.cs
- PropertiesTab.cs
- TerminatorSinks.cs
- ISAPIApplicationHost.cs
- PartialCachingAttribute.cs
- RegexInterpreter.cs
- ReadOnlyHierarchicalDataSourceView.cs
- DataGridTextBoxColumn.cs
- FieldNameLookup.cs
- QueryableDataSourceHelper.cs
- RTLAwareMessageBox.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- TypeContext.cs
- WsdlBuildProvider.cs
- XamlReaderConstants.cs
- DbParameterCollectionHelper.cs
- QuestionEventArgs.cs
- SelectionProcessor.cs
- CompositeActivityTypeDescriptor.cs
- DataControlCommands.cs
- SqlAliaser.cs
- SiteMapHierarchicalDataSourceView.cs
- SymmetricAlgorithm.cs
- FilteredDataSetHelper.cs
- MediaPlayer.cs
- ResourceManager.cs
- RepeatButtonAutomationPeer.cs
- QilChoice.cs
- TextBox.cs
- ListControl.cs
- OnOperation.cs
- SqlTriggerContext.cs
- TypeSource.cs
- Help.cs
- DependencyObjectPropertyDescriptor.cs
- SiteMapNodeItemEventArgs.cs
- CodeGeneratorOptions.cs
- NestPullup.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- XmlDataFileEditor.cs
- UpdatePanelTriggerCollection.cs
- DataObjectMethodAttribute.cs
- ToolStripDesignerAvailabilityAttribute.cs
- DataGridViewColumnEventArgs.cs
- FloaterBaseParagraph.cs