mardi 5 mai 2015

Custom attributes in c# for data types

I am thinking about making a custom attribute so that when we are using multiple data readers [SqldataReader] on different objects/tables, we could use the attribute to get the type of the property, and the "columnName" of the property. This way, we could then have a method that takes the data reader as a param, and from there could reflect the attributes to read in the columns. An example of what is currently being done is below, and then an example of what I am trying to accomplish. The problem I am having, is how to manage how to tell it what the (Type) is.

 private static App GetAppInfo(SqlDataReader dr)
    {
        App app = new App();

        app.ID = MCCDBUtility.GetDBValueInt(dr, "APPLICATION_ID");
        app.Name = MCCDBUtility.GetDBValueString(dr, "APPNAME");
        app.Desc = MCCDBUtility.GetDBValueString(dr, "APPDESCRIPTION");
        app.Version = MCCDBUtility.GetDBValueString(dr, "APP_VERSION");
        app.Type = MCCDBUtility.GetDBValueString(dr, "APPLICATIONTYPEID");
        app.AreaName = MCCDBUtility.GetDBValueString(dr, "AREANAME");

        return app;
    }

What I am thinking though, so if I had a class for example like so:

[DataReaderHelper("MethodNameToGetType", "ColumnName")]
public string APPNAME {get;set;}

How could I go about this?

Aucun commentaire:

Enregistrer un commentaire