SetReadOnly() public method

public SetReadOnly ( ) : void
return void
		public void ReadOnly_Clear ()
		{
			SettingsPropertyCollection col = new SettingsPropertyCollection ();

			SettingsProperty test_prop = new SettingsProperty ("test_prop");
			col.Add (test_prop);

			col.SetReadOnly ();

			col.Clear ();
		}
示例#2
0
		static void InitProperties ()
		{
			SettingsPropertyCollection properties = new SettingsPropertyCollection ();

			ProfileSection config = (ProfileSection) WebConfigurationManager.GetSection ("system.web/profile");
			RootProfilePropertySettingsCollection ps = config.PropertySettings;

			for (int i = 0; i < ps.GroupSettings.Count; i++) {
				ProfileGroupSettings pgs = ps.GroupSettings [i];
				ProfilePropertySettingsCollection ppsc = pgs.PropertySettings;

				for (int s = 0; s < ppsc.Count; s++) {
					SettingsProperty settingsProperty = CreateSettingsProperty (pgs, ppsc [s]);
					ValidateProperty (settingsProperty, ppsc [s].ElementInformation);
					properties.Add (settingsProperty);
				}
			}

			for (int s = 0; s < ps.Count; s++) {
				SettingsProperty settingsProperty = CreateSettingsProperty (null, ps [s]);
				ValidateProperty (settingsProperty, ps [s].ElementInformation);
				properties.Add (settingsProperty);
			}

			if (config.Inherits.Length > 0) {
				Type profileType = ProfileParser.GetProfileCommonType (HttpContext.Current);
				if (profileType != null) {
					Type properiesType = profileType.BaseType;
					for (; ; ) {
						PropertyInfo [] pi = properiesType.GetProperties (BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
						if (pi.Length > 0)
							for (int i = 0; i < pi.Length; i++)
								properties.Add (CreateSettingsProperty (pi [i]));

						if (properiesType.BaseType == null || 
							properiesType.BaseType == typeof (ProfileBase))
							break;

						properiesType = properiesType.BaseType;
					}
				}
			}

			properties.SetReadOnly ();
			lock (Profiles_SettingsPropertyCollection) {
				if (_properties == null)
					_properties = properties;
			}
		}