Home > DeveloperSection > Forums > Getting property names at compile time
Ankit Singh

Total Post:341

Points:2389
Posted on    April-10-2013 1:43 AM

 C# C# 
Ratings:


 1 Reply(s)
 720  View(s)
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!


AVADHESH PATEL

Total Post:604

Points:4228
Posted on    April-15-2013 7:49 AM

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; }
    (...)
}

Don't want to miss updates? Please click the below button!

Follow MindStick