Why "Does not exist" under the same namespace

BenTam 1,801 Reputation points
2024-02-06T14:56:35.62+00:00

Dear All,

Please note that the code snippet below has been extracted from the "Student_Form.cs" file resulting in an error. I created a separate file "IniFile" within the namespace "NewTims". Since they were under the same namespace "NewTims", why did the "IniWriteValue" calling cause the error stating that "The name 'IniWriteValue' does not exist in the current context"?

The calling code:Student_Form.cs The IniFile:

using System.Runtime.InteropServices;
using System.Text;

namespace NewTims
{ 
    public class IniFile
    {
        public string path;

        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, 
                string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,
            string key, string def, StringBuilder retVal,
            int size, string filePath);

        public IniFile(string INIPath)
        {
            path = INIPath;
        }
        public void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, this.path);
        }


        public string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            GetPrivateProfileString(Section, Key, "", temp, 255, this.path);
            return temp.ToString();
        }
    }
}
Developer technologies | C#
Developer technologies | C#
An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
{count} votes

Answer accepted by question author
  1. Viorel 125.8K Reputation points
    2024-02-06T15:28:44.65+00:00

    The IniWriteValue function is a member of IniFile. Try something like this (in the form):

    string p = Environment.ExpandEnvironmentVariables( @"%APPDATA%\MyFile.ini" );
    IniFile f = new IniFile( p );
    f.IniWriteValue( "FormProperties", "FormBackColor", new ColorConverter( ).ConvertToInvariantString( BackColor ) );
    

    However, the Settings files are easier to use.

    1 person found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.