Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6076233
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T10:35:03+00:00 2026-05-23T10:35:03+00:00

I’m trying to make a small application that can edit the data files from

  • 0

I’m trying to make a small application that can edit the data files from an earlier project. I have access to that projects “data classes” (pretty dumb classes whose main purpose is to expose it’s (public) member variables) that can read/write to the files. All I have to do is make a GUI that can edit the different member variables that each data class have (preferably without modifying the data class) and I’m trying to figure out how to do this so that it will be easy to adapt for future changes/additions.
(I don’t feel like I can assume that all member variables should be editable, might only be a selection of them).

All the data can be converted to/from strings (numbers and text) and I don’t see much problem in generating textboxes and/or something like a DataGridView in the GUI, but I’m not sure as to how I would like to represent the data needed to generate those.

My first thought was to use a list with all variables for each data class. With each row in the list containing the name+description of the variable (for the GUI), a pointer to the variable in the data-class and perhaps some form of validation-function for different variables.
Store that list in a class that inherits the original data-class (and that implements an interface/abstract-class for any specific GUI-related functions (load/save etc.)).

The thing that makes me worry about this solution is just that I feel like this should be a somewhat common problem and I’m a bit rusty when it comes to OO and this solution smells like something I’d write if I had to do it in C.

There might even be a handy language construct, design pattern or something that is suitable but I don’t know what to search for.

Does this approach even seem sensible?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T10:35:04+00:00Added an answer on May 23, 2026 at 10:35 am

    Reflection is your friend in this case. Your data classes have a structure which can be explored using that class’s Type. A Type is the base class for metadata concerning a class or structure, and includes methods to, for instance, get a list of all fields, properties and/or methods belonging to that class. The objects representing these class “members” can then be used to set or get field or property values, or invoke methods, given an instance of an object of that type.

    A reflective algorithm can be designed to handle any object structure it is given, and it doesn’t have to know those structures at compile-time unlike an algorithm based on static types. The downside? It’s slow, and you get very little compile-time checking of your algorithm so it can fail at run-time in unexpected ways.

    Here’s something to get you started:

    //statically set up an instance of some arbitrary object
    MyClass myObject = new MyClass();
    myObject.Field1 = "Hello";
    myObject.Field2 = "World";
    
    //This method is available on any object, and produces a Type representing the class definition
    Type myType = myObject.GetType();
    
    //C# also has a typeof() keyword that works when you have a static type and not an instance
    myType = typeof(MyObject);
    
    //Interrogate the Type instance to get its fields
    FieldInfo[] fields = myType.GetFields();
    
    //then, iterate through the fields to perform some (useful?) work.
    //Here, we are outputting a list of paired field names and their current values.
    //You will probably want to instantiate a Label and Textbox representing this value 
    //and show them on a Form.
    foreach(FieldInfo field in fields)
       Console.WriteLine(String.Format("{0}: {1}", field.Name, field.GetValue(myObject));
    

    To handle editability, you will need some sort of record of what the user has permission to change and what they don’t. If that information will never change from user to user, you can incorporate that information into the data class itself using attributes (which won’t change the “interface” of the object; it’ll still have all the same members, but those members will have additional metadata). You could also create another set of classes that implement an interface defining each one as a set of “field permissions” for its parent class, and then you can dynamically construct an instance of the “field permission” class with a Type instance representing your object definition, and knowledge of the name of the interface that field permission objects implement.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a bunch of posts stored in text files formatted in yaml/textile (from
I have a jquery bug and I've been looking for hours now, I can't
I have a French site that I want to parse, but am running into
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
I have a text area in my form which accepts all possible characters from
I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
Does anyone know how can I replace this 2 symbol below from the string
I'm trying to create an if statement in PHP that prevents a single post
I have thousands of HTML files to process using Groovy/Java and I need to
I am trying to loop through a bunch of documents I have to put

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.