GETTING PROPERTY NAMES AT COMPILE TIME

Ankit Singh

Total Post:341

Points:2389
Posted by  Ankit Singh
C# 
C#
 982  View(s)
Ratings:
Rate this:
Hi Everyone!

I have a class with some properties:

class Foo
{
    int Bar { get; set; }
    string Baz { get; set; }
    bool Quux { get; set; }
    (...)
}
For use in some storage API, I need to specify a subset of these properties, by name as strings:

var props = new string[]
{
    "Bar",
    // Don't want this one... "Baz",
    "Quux",
     ...
};
This works, but is unsafe - if I mistype "Quux", I won't get a compilation error, just (hopefully) a runetime error. I tried reflection - typeof(Foo).GetProperties

("Bar") - but that would also fail only in runtime.

Ideally, I'd like to do something like:

var props = new string[]
{
    Magic_GetName(Foo.Bar),
    // Don't want this one... Foo.Baz,
    Magic_GetName(Foo.Quux),
     ...
};

How can I achieve that?
Thanks in advance!
  1. AVADHESH PATEL

    Post:604

    Points:4228
    Re: Getting property names at compile time

    Hi Ankit!

    Make the properties public to access them outside the class

    class Foo
    {
        public int Bar { get; set; }
        public string Baz { get; set; }
        public bool Quux { get; set; }
        (...)
    }

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!