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

  • Home
  • SEARCH
  • 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 142679
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T07:58:30+00:00 2026-05-11T07:58:30+00:00

I am using a Custom Attribute to define how a class’s members are mapped

  • 0

I am using a Custom Attribute to define how a class’s members are mapped to properties for posting as a form post (Payment Gateway). I have the custom attribute working just fine, and am able to get the attribute by ‘name’, but would like to get the attribute by the member itself.

For example:

getFieldName('name'); 

vs

getFieldName(obj.Name); 

The plan is to write a method to serialize the class with members into a postable string.

Here’s the test code I have at this point, where ret is a string and PropertyMapping is the custom attribute:

foreach (MemberInfo i in (typeof(CustomClass)).GetMember('Name')) {     foreach (object at in i.GetCustomAttributes(true))     {         PropertyMapping map = at as PropertyMapping;         if (map != null)         {             ret += map.FieldName;         }     } } 

Thanks in advance!

  • 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. 2026-05-11T07:58:30+00:00Added an answer on May 11, 2026 at 7:58 am

    You can’t really do this, unless you’re using C# 3.0 in which case you’ll need to rely on LINQ (ehm, expression trees).

    What you do is that you create a dummy method for a lambda expression which lets the compiler generate the expression tree (compiler does the type checking). Then you dig into that tree to get the member. Like so:

    static FieldInfo GetField<TType, TMemberType>(     Expression<Func<TType, TMemberType>> accessor) {     var member = accessor.Body as MemberExpression;     if (member != null)     {         return member.Member as FieldInfo;     }     return null; // or throw exception... } 

    Given the following class:

    class MyClass {     public int a; } 

    You can get the meta data like this:

    // get FieldInfo of member 'a' in class 'MyClass' var f = GetField((MyClass c) => c.a);  

    With a reference to that field you can then dig up any attribute the usual way. i.e. reflection.

    static TAttribute GetAttribute<TAttribute>(      this MemberInfo member ) where TAttribute: Attribute {     return member.GetCustomAttributes( typeof( TAttribute ), false )         .Cast<TAttribute>().FirstOrDefault<TAttribute>(); } 

    Now you can dig up an attribute on any field by something which is in large checked by the compiler. It also works with refactoring, if you rename ‘a’ Visual Studio will catch that.

    var attr = GetField((MyClass c) => c.a).GetAttribute<DisplayNameAttribute>(); Console.WriteLine(attr.DisplayName); 

    There’s not a single literal string in that code there.

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

Sidebar

Ask A Question

Stats

  • Questions 419k
  • Answers 419k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer The second approach works fine. Note that you shouldn't apply… May 15, 2026 at 10:17 am
  • Editorial Team
    Editorial Team added an answer OK – I cannot be sure, but I suspect the… May 15, 2026 at 10:17 am
  • Editorial Team
    Editorial Team added an answer I have a Nexus One and I would like to… May 15, 2026 at 10:17 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.