Advertise with us

Getting property names at compile time

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!
Last updated:4/15/2013 7:49:19 AM

1 Answers

AVADHESH PATEL
AVADHESH PATEL

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