/// <summary> /// Look at myself, to see if there are any command line /// parameter fields or properties. /// </summary> private void SetFlags() { if (m_flags.Count != 0) { return; } MemberInfo[] mis = this.GetCommandLineMembers(); foreach (MemberInfo mi in mis) { CommandLineAttribute cla = this.GetOption(mi); String cf = cla.CommandFlag; // If no CommandFlag specified, use the member name. if (cf == null) { cf = mi.Name; } // make sure required parameters are initialized to null. if (cla.Required && this.GetValue(mi) != null) { throw new ArgumentException("Must provide null initial value for required parameters: ", mi.Name); } m_flags[cf] = mi; } }
/// <summary> /// Make sure all required fields got hit. /// </summary> private void CheckRequired() { MemberInfo[] mis = this.GetCommandLineMembers(); foreach (MemberInfo mi in mis) { CommandLineAttribute cla = this.GetOption(mi); if (cla.Required && this.GetValue(mi) == null) { throw new ArgumentException("Did not provide required parameter: ", mi.Name); } } }