Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Profile / HttpProfileBase.cs / 1305376 / HttpProfileBase.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * ProfileBase * * Copyright (c) 2002 Microsoft Corporation */ namespace System.Web.Profile { using System.Security.Principal; using System.Security.Permissions; using System.Collections; using System.Collections.Specialized; using System.Web.Configuration; using System.Web.Util; using System.Web.Security; using System.Web.Compilation; using System.Configuration; using System.Configuration.Provider; using System.Reflection; using System.CodeDom; using System.Web.Hosting; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Security; public class ProfileBase : SettingsBase { ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// // Public (instance) functions and properties public override object this[string propertyName] { get { if (!HttpRuntime.DisableProcessRequestInApplicationTrust) { // VSWhidbey 427541 if (HttpRuntime.NamedPermissionSet != null && HttpRuntime.ProcessRequestInApplicationTrust) { HttpRuntime.NamedPermissionSet.PermitOnly(); } } return GetInternal(propertyName); } set { if (!HttpRuntime.DisableProcessRequestInApplicationTrust) { // VSWhidbey 427541 if (HttpRuntime.NamedPermissionSet != null && HttpRuntime.ProcessRequestInApplicationTrust) { HttpRuntime.NamedPermissionSet.PermitOnly(); } } SetInternal(propertyName, value); } } [SecurityPermission(SecurityAction.Assert, Flags = SecurityPermissionFlag.SerializationFormatter)] private object GetInternal(string propertyName) { return base[propertyName]; } [SecurityPermission(SecurityAction.Assert, Flags = SecurityPermissionFlag.SerializationFormatter)] private void SetInternal(string propertyName, object value) { if (!_IsAuthenticated) { SettingsProperty p = s_Properties[propertyName]; if (p != null) { bool fAllowAnonymous = (bool)p.Attributes["AllowAnonymous"]; if (!fAllowAnonymous) throw new ProviderException(SR.GetString(SR.Profile_anonoymous_not_allowed_to_set_property)); } } base[propertyName] = value; } public object GetPropertyValue(string propertyName) { return this[propertyName]; } public void SetPropertyValue(string propertyName, object propertyValue) { this[propertyName] = propertyValue; } public ProfileGroupBase GetProfileGroup(string groupName) { ProfileGroupBase grp = (ProfileGroupBase)_Groups[groupName]; if (grp == null) { Type t = BuildManager.GetProfileType(); if (t == null) throw new ProviderException(SR.GetString(SR.Profile_group_not_found, groupName)); t = t.Assembly.GetType("ProfileGroup" + groupName, false); if (t == null) throw new ProviderException(SR.GetString(SR.Profile_group_not_found, groupName)); grp = (ProfileGroupBase)Activator.CreateInstance(t); grp.Init(this, groupName); } return grp; } public ProfileBase() { if (!ProfileManager.Enabled) throw new ProviderException(SR.GetString(SR.Profile_not_enabled)); if (!s_Initialized) InitializeStatic(); } public void Initialize(string username, bool isAuthenticated) { if (username != null) _UserName = username.Trim(); else _UserName = username; //if (string.IsNullOrEmpty(_UserName)) // throw new ArgumentException(SR.GetString(SR.Membership_InvalidUserName), "username"); SettingsContext sc = new SettingsContext(); sc.Add("UserName", _UserName); sc.Add("IsAuthenticated", isAuthenticated); _IsAuthenticated = isAuthenticated; base.Initialize(sc, s_Properties, ProfileManager.Providers); } public override void Save() { if (!HttpRuntime.DisableProcessRequestInApplicationTrust) { // VSWhidbey 427541 if (HttpRuntime.NamedPermissionSet != null && HttpRuntime.ProcessRequestInApplicationTrust) { HttpRuntime.NamedPermissionSet.PermitOnly(); } } SaveWithAssert(); } [SecurityPermission(SecurityAction.Assert, Flags = SecurityPermissionFlag.SerializationFormatter)] private void SaveWithAssert() { base.Save(); _IsDirty = false; _DatesRetrieved = false; } public string UserName { get { return _UserName; } } public bool IsAnonymous { get { return !_IsAuthenticated; } } public bool IsDirty { get { if (_IsDirty) return true; foreach (SettingsPropertyValue pv in PropertyValues) { if (pv.IsDirty) { _IsDirty = true; return true; } } return false; } } public DateTime LastActivityDate { get { if (!_DatesRetrieved) RetrieveDates(); return _LastActivityDate.ToLocalTime(); } } public DateTime LastUpdatedDate { get { if (!_DatesRetrieved) RetrieveDates(); return _LastUpdatedDate.ToLocalTime(); } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // static public Properties and functions static public ProfileBase Create(string username) { return Create(username, true); } static public ProfileBase Create(string username, bool isAuthenticated) { if (!ProfileManager.Enabled) throw new ProviderException(SR.GetString(SR.Profile_not_enabled)); InitializeStatic(); if (s_SingletonInstance != null) return s_SingletonInstance; if (s_Properties.Count == 0) { lock (s_InitializeLock) { if (s_SingletonInstance == null) s_SingletonInstance = new DefaultProfile(); return s_SingletonInstance; } } HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level); return CreateMyInstance(username, isAuthenticated); } new static public SettingsPropertyCollection Properties { get { InitializeStatic(); return s_Properties; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Internal static functions and properties ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// internal static Type InheritsFromType { get { if (!ProfileManager.Enabled) { return typeof(DefaultProfile); } Type t; if (HostingEnvironment.IsHosted) t = BuildManager.GetType(InheritsFromTypeString, true, true); else t = GetPropType(InheritsFromTypeString); if (!typeof(ProfileBase).IsAssignableFrom(t)) { ProfileSection config = MTConfigUtil.GetProfileAppConfig(); throw new ConfigurationErrorsException(SR.GetString(SR.Wrong_profile_base_type), null, config.ElementInformation.Properties["inherits"].Source, config.ElementInformation.Properties["inherit"].LineNumber); } return t; } } internal static string InheritsFromTypeString { get { string defaultType = typeof(ProfileBase).ToString(); if (!ProfileManager.Enabled) return defaultType; ProfileSection config = MTConfigUtil.GetProfileAppConfig(); if (config.Inherits == null) return defaultType; string inheritsType = config.Inherits.Trim(); if (inheritsType.Length < 1) return defaultType; Type t = Type.GetType(inheritsType, false, true); if (t == null) return inheritsType; if (!typeof(ProfileBase).IsAssignableFrom(t)) throw new ConfigurationErrorsException(SR.GetString(SR.Wrong_profile_base_type), null, config.ElementInformation.Properties["inherits"].Source, config.ElementInformation.Properties["inherit"].LineNumber); return t.AssemblyQualifiedName; } } internal static bool InheritsFromCustomType { get { if (!ProfileManager.Enabled) return false; ProfileSection config = MTConfigUtil.GetProfileAppConfig(); if (config.Inherits == null) return false; string inheritsType = config.Inherits.Trim(); if (inheritsType == null || inheritsType.Length < 1) return false; Type t = Type.GetType(inheritsType, false, true); if (t == null || t != typeof(ProfileBase)) return true; else return false; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// internal static ProfileBase SingletonInstance { get { return s_SingletonInstance; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// internal static Hashtable GetPropertiesForCompilation() { if (!ProfileManager.Enabled) return null; if (s_PropertiesForCompilation != null) return s_PropertiesForCompilation; lock (s_InitializeLock) { if (s_PropertiesForCompilation != null) return s_PropertiesForCompilation; Hashtable ht = new Hashtable(); ProfileSection config = MTConfigUtil.GetProfileAppConfig(); if (config.PropertySettings == null) { s_PropertiesForCompilation = ht; return s_PropertiesForCompilation; } AddProfilePropertySettingsForCompilation(config.PropertySettings, ht, null); foreach (ProfileGroupSettings pgs in config.PropertySettings.GroupSettings) { AddProfilePropertySettingsForCompilation(pgs.PropertySettings, ht, pgs.Name); } AddProfilePropertySettingsForCompilation(ProfileManager.DynamicProfileProperties, ht, null); s_PropertiesForCompilation = ht; } return s_PropertiesForCompilation; } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// internal static string GetProfileClassName() { Hashtable props = GetPropertiesForCompilation(); if (props == null) return "System.Web.Profile.DefaultProfile"; if (props.Count > 0 || InheritsFromCustomType) return "ProfileCommon"; else return "System.Web.Profile.DefaultProfile"; } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// private static void AddProfilePropertySettingsForCompilation(ProfilePropertySettingsCollection propertyCollection, Hashtable ht, string groupName) { foreach (ProfilePropertySettings pps in propertyCollection) { ProfileNameTypeStruct prop = new ProfileNameTypeStruct(); if (groupName != null) { prop.Name = groupName + "." + pps.Name; } else { prop.Name = pps.Name; } Type t = pps.TypeInternal; if (t == null) t = ResolvePropertyTypeForCommonTypes(pps.Type.ToLower(System.Globalization.CultureInfo.InvariantCulture)); if (t == null) t = BuildManager.GetType(pps.Type, false); if (t == null) { prop.PropertyCodeRefType = new CodeTypeReference(pps.Type); } else { prop.PropertyCodeRefType = new CodeTypeReference(t); } prop.PropertyType = t; pps.TypeInternal = t; prop.IsReadOnly = pps.ReadOnly; prop.LineNumber = pps.ElementInformation.Properties["name"].LineNumber; prop.FileName = pps.ElementInformation.Properties["name"].Source; ht.Add(prop.Name, prop); } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Private static functions and properties ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// static private ProfileBase CreateMyInstance(string username, bool isAuthenticated) { Type t; if (HostingEnvironment.IsHosted) t = BuildManager.GetProfileType(); else t = InheritsFromType; ProfileBase hbc = (ProfileBase)Activator.CreateInstance(t); hbc.Initialize(username, isAuthenticated); return hbc; } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// static private void InitializeStatic() { if (!ProfileManager.Enabled || s_Initialized) { if (s_InitializeException != null) throw s_InitializeException; return; } lock (s_InitializeLock) { if (s_Initialized) { if (s_InitializeException != null) throw s_InitializeException; return; } try { ProfileSection config = MTConfigUtil.GetProfileAppConfig(); bool fAnonEnabled = (HostingEnvironment.IsHosted ? AnonymousIdentificationModule.Enabled : true); Type baseType = ProfileBase.InheritsFromType; bool hasLowTrust = HttpRuntime.HasAspNetHostingPermission(AspNetHostingPermissionLevel.Low); s_Properties = new SettingsPropertyCollection(); // Step 0: Add all dynamic profile properties set programatically during PreAppStart ProfileBase.AddPropertySettingsFromConfig(baseType, fAnonEnabled, hasLowTrust, ProfileManager.DynamicProfileProperties, null); ////////////////////////////////////////////////////////////////////// // Step 1: Add Properties from the base class (if not ProfileBase) if (baseType != typeof(ProfileBase)) { ////////////////////////////////////////////////////////////////////// // Step 2: Construct a hashtable containing a list of all the property-names in the ProfileBase type PropertyInfo[] baseProps = typeof(ProfileBase).GetProperties(); NameValueCollection baseProperties = new NameValueCollection(baseProps.Length); foreach (PropertyInfo baseProp in baseProps) baseProperties.Add(baseProp.Name, String.Empty); ////////////////////////////////////////////////////////////////////// // Step 3: For each property in the derived class, add it to the s_Properties class. PropertyInfo[] props = baseType.GetProperties(); foreach (PropertyInfo prop in props) { if (baseProperties[prop.Name] == null) { //not in the base class ProfileProvider prov = hasLowTrust ? ProfileManager.Provider : null; bool readOnly = false; SettingsSerializeAs serializeAs = SettingsSerializeAs.ProviderSpecific; string defaultValue = String.Empty; bool allowAnonymous = false; string customData = null; ////////////////////////////////////////////////////////////////////// // Step 4: For the property, get the attributes Attribute[] attribs = Attribute.GetCustomAttributes(prop, true); foreach (Attribute attrib in attribs) { if (attrib is SettingsSerializeAsAttribute) { serializeAs = ((SettingsSerializeAsAttribute)attrib).SerializeAs; } else if (attrib is SettingsAllowAnonymousAttribute) { allowAnonymous = ((SettingsAllowAnonymousAttribute)attrib).Allow; if (!fAnonEnabled && allowAnonymous) throw new ConfigurationErrorsException(SR.GetString(SR.Annoymous_id_module_not_enabled, prop.Name), config.ElementInformation.Properties["inherits"].Source, config.ElementInformation.Properties["inherits"].LineNumber); } else if (attrib is System.ComponentModel.ReadOnlyAttribute) { readOnly = ((System.ComponentModel.ReadOnlyAttribute)attrib).IsReadOnly; } else if (attrib is DefaultSettingValueAttribute) { defaultValue = ((DefaultSettingValueAttribute)attrib).Value; } else if (attrib is CustomProviderDataAttribute) { customData = ((CustomProviderDataAttribute)attrib).CustomProviderData; } else if (hasLowTrust && attrib is ProfileProviderAttribute) { prov = ProfileManager.Providers[((ProfileProviderAttribute)attrib).ProviderName]; if (prov == null) throw new ConfigurationErrorsException(SR.GetString(SR.Profile_provider_not_found, ((ProfileProviderAttribute)attrib).ProviderName), config.ElementInformation.Properties["inherits"].Source, config.ElementInformation.Properties["inherits"].LineNumber); } } ////////////////////////////////////////////////////////////////////// // Step 5: Add the property to the s_Properties SettingsAttributeDictionary settings = new SettingsAttributeDictionary(); settings.Add("AllowAnonymous", allowAnonymous); if (!string.IsNullOrEmpty(customData)) settings.Add("CustomProviderData", customData); SettingsProperty sp = new SettingsProperty(prop.Name, prop.PropertyType, prov, readOnly, defaultValue, serializeAs, settings, false, true); s_Properties.Add(sp); } } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Step 6: Add all properties from config if (config.PropertySettings != null) { AddPropertySettingsFromConfig(baseType, fAnonEnabled, hasLowTrust, config.PropertySettings, null); foreach (ProfileGroupSettings pgs in config.PropertySettings.GroupSettings) { AddPropertySettingsFromConfig(baseType, fAnonEnabled, hasLowTrust, pgs.PropertySettings, pgs.Name); } } } catch (Exception e) { if (s_InitializeException == null) s_InitializeException = e; } // If there are no properties, create an empty collection. if (s_Properties == null) s_Properties = new SettingsPropertyCollection(); // Make the properties collection read-only s_Properties.SetReadOnly(); s_Initialized = true; } // Throw an exception if there was an exception during initialization if (s_InitializeException != null) throw s_InitializeException; } private static void AddPropertySettingsFromConfig(Type baseType, bool fAnonEnabled, bool hasLowTrust, ProfilePropertySettingsCollection settingsCollection, string groupName) { foreach (ProfilePropertySettings pps in settingsCollection) { string name = (groupName != null) ? (groupName + "." + pps.Name) : pps.Name; if (baseType != typeof(ProfileBase) && s_Properties[name] != null) throw new ConfigurationErrorsException(SR.GetString(SR.Profile_property_already_added), null, pps.ElementInformation.Properties["name"].Source, pps.ElementInformation.Properties["name"].LineNumber); try { if (pps.TypeInternal == null) { pps.TypeInternal = ResolvePropertyType(pps.Type); } } catch (Exception e) { throw new ConfigurationErrorsException(SR.GetString(SR.Profile_could_not_create_type, e.Message), e, pps.ElementInformation.Properties["type"].Source, pps.ElementInformation.Properties["type"].LineNumber); } if (!fAnonEnabled) { bool fAllowAnonymous = pps.AllowAnonymous; if (fAllowAnonymous) throw new ConfigurationErrorsException(SR.GetString(SR.Annoymous_id_module_not_enabled, pps.Name), pps.ElementInformation.Properties["allowAnonymous"].Source, pps.ElementInformation.Properties["allowAnonymous"].LineNumber); } if (pps.SerializeAs == SerializationMode.Binary && !pps.TypeInternal.IsSerializable) { throw new ConfigurationErrorsException(SR.GetString(SR.Property_not_serializable, pps.Name), pps.ElementInformation.Properties["serializeAs"].Source, pps.ElementInformation.Properties["serializeAs"].LineNumber); } if (hasLowTrust) { SetProviderForProperty(pps); } else { pps.ProviderInternal = null; } SettingsAttributeDictionary settings = new SettingsAttributeDictionary(); settings.Add("AllowAnonymous", pps.AllowAnonymous); if (!string.IsNullOrEmpty(pps.CustomProviderData)) settings.Add("CustomProviderData", pps.CustomProviderData); SettingsProperty sp = new SettingsProperty(name, pps.TypeInternal, pps.ProviderInternal, pps.ReadOnly, pps.DefaultValue, (SettingsSerializeAs)pps.SerializeAs, settings, false, true); s_Properties.Add(sp); } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// static private void SetProviderForProperty(ProfilePropertySettings pps) { if (pps.Provider == null || pps.Provider.Length < 1) { pps.ProviderInternal = ProfileManager.Provider; // Use default provider } else { pps.ProviderInternal = ProfileManager.Providers[pps.Provider]; // Use specified provider } // Provider not found? if (pps.ProviderInternal == null) throw new ConfigurationErrorsException(SR.GetString(SR.Profile_provider_not_found, pps.Provider), pps.ElementInformation.Properties["provider"].Source, pps.ElementInformation.Properties["provider"].LineNumber); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// static private Type ResolvePropertyTypeForCommonTypes(string typeName) { switch (typeName) { case "string": return typeof(string); case "byte": case "int8": return typeof(byte); case "boolean": case "bool": return typeof(bool); case "char": return typeof(char); case "int": case "integer": case "int32": return typeof(int); case "date": case "datetime": return typeof(DateTime); case "decimal": return typeof(decimal); case "double": case "float64": return typeof(System.Double); case "float": case "float32": return typeof(float); case "long": case "int64": return typeof(long); case "short": case "int16": return typeof(System.Int16); case "single": return typeof(Single); case "uint16": case "ushort": return typeof(UInt16); case "uint32": case "uint": return typeof(uint); case "ulong": case "uint64": return typeof(ulong); case "object": return typeof(object); default: return null; } } static private Type ResolvePropertyType(string typeName) { Type t = ResolvePropertyTypeForCommonTypes(typeName.ToLower(System.Globalization.CultureInfo.InvariantCulture)); if (t != null) return t; if (HostingEnvironment.IsHosted) return BuildManager.GetType(typeName, true, true); else return GetPropType(typeName); } static private Type GetPropType(string typeName) { Exception ex = null; try { return Type.GetType(typeName, true, true); } catch (Exception e) { ex = e; } try { CompilationSection config = MTConfigUtil.GetCompilationAppConfig(); if (config != null) { AssemblyCollection ac = config.Assemblies; if (ac != null) { foreach (Assembly a in ac) { Type t = a.GetType(typeName, false, true); if (t != null) return t; } } } } catch { } throw ex; } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // Instance data private Hashtable _Groups = new Hashtable(); private bool _IsAuthenticated = false; private string _UserName = null; private bool _IsDirty = false; private DateTime _LastActivityDate; private DateTime _LastUpdatedDate; private bool _DatesRetrieved; private void RetrieveDates() { if (_DatesRetrieved || ProfileManager.Provider == null) return; int totalRecords; ProfileInfoCollection coll = ProfileManager.Provider.FindProfilesByUserName(ProfileAuthenticationOption.All, _UserName, 0, 1, out totalRecords); foreach (ProfileInfo p in coll) { _LastActivityDate = p.LastActivityDate.ToUniversalTime(); _LastUpdatedDate = p.LastUpdatedDate.ToUniversalTime(); _DatesRetrieved = true; return; } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // Static data private static SettingsPropertyCollection s_Properties = null; private static object s_InitializeLock = new Object(); private static Exception s_InitializeException = null; private static bool s_Initialized = false; private static ProfileBase s_SingletonInstance = null; private static Hashtable s_PropertiesForCompilation = null; } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// internal class ProfileNameTypeStruct { internal string Name; internal CodeTypeReference PropertyCodeRefType; internal Type PropertyType; internal bool IsReadOnly; internal int LineNumber; internal string FileName; } } // 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
- ObjectAnimationBase.cs
- AnchorEditor.cs
- BadImageFormatException.cs
- WebPartCancelEventArgs.cs
- SymLanguageType.cs
- DrawingContext.cs
- WsiProfilesElementCollection.cs
- BrowserPolicyValidator.cs
- StaticSiteMapProvider.cs
- CanonicalFormWriter.cs
- CustomAttributeSerializer.cs
- EnterpriseServicesHelper.cs
- UnsafeNativeMethodsTablet.cs
- IsolatedStorageException.cs
- ListViewItemEventArgs.cs
- WebRequestModulesSection.cs
- DesignerActionHeaderItem.cs
- TypeElement.cs
- SmtpSection.cs
- DirectoryNotFoundException.cs
- CollectionsUtil.cs
- DbConnectionPool.cs
- DataColumnSelectionConverter.cs
- DataShape.cs
- GC.cs
- CursorConverter.cs
- ManifestResourceInfo.cs
- AssemblyBuilder.cs
- StringSource.cs
- Image.cs
- DiagnosticTraceSource.cs
- ReferenceCountedObject.cs
- XmlDataSource.cs
- PostBackOptions.cs
- PersistenceTypeAttribute.cs
- DocumentViewerBase.cs
- DataGridViewColumnEventArgs.cs
- MdiWindowListItemConverter.cs
- Directory.cs
- TryLoadRunnableWorkflowCommand.cs
- SqlDuplicator.cs
- FederatedMessageSecurityOverHttp.cs
- OperationInvokerTrace.cs
- IDQuery.cs
- ObjectView.cs
- Lasso.cs
- CompoundFileReference.cs
- BinaryFormatterWriter.cs
- HtmlUtf8RawTextWriter.cs
- MTConfigUtil.cs
- PreDigestedSignedInfo.cs
- ObjectListShowCommandsEventArgs.cs
- SortQuery.cs
- FacetEnabledSchemaElement.cs
- SplineKeyFrames.cs
- BinaryMethodMessage.cs
- columnmapfactory.cs
- panel.cs
- Metadata.cs
- SqlServer2KCompatibilityAnnotation.cs
- TextBoxRenderer.cs
- XamlVector3DCollectionSerializer.cs
- TraceRecord.cs
- RowUpdatedEventArgs.cs
- FormViewInsertEventArgs.cs
- ItemCheckedEvent.cs
- ControllableStoryboardAction.cs
- UnmanagedBitmapWrapper.cs
- ValidationError.cs
- OSFeature.cs
- RoleGroup.cs
- SchemaDeclBase.cs
- WeakEventManager.cs
- CannotUnloadAppDomainException.cs
- Transactions.cs
- ADRoleFactory.cs
- FileLoadException.cs
- altserialization.cs
- EndSelectCardRequest.cs
- RowType.cs
- DesignerLoader.cs
- RoleManagerModule.cs
- MissingFieldException.cs
- SparseMemoryStream.cs
- CounterCreationDataCollection.cs
- TTSVoice.cs
- DeobfuscatingStream.cs
- BufferedReadStream.cs
- DbConnectionPoolOptions.cs
- AttributeAction.cs
- JsonDeserializer.cs
- DataBoundControlAdapter.cs
- DetailsViewDeletedEventArgs.cs
- PersistenceProviderElement.cs
- ValidateNames.cs
- TextRangeEdit.cs
- DataControlField.cs
- SiteMap.cs
- HttpModuleCollection.cs
- HtmlInputButton.cs