When should I use attribute in C#?

后端 未结 5 610
旧巷少年郎
旧巷少年郎 2020-12-08 04:03

I saw some of the examples of utilize attribute, e.g. (as a map for dynamic factory) http://msdn.microsoft.com/en-us/magazine/cc164170.aspx

Just wondering what is th

5条回答
  •  不知归路
    2020-12-08 04:49

    In the .NET Framework, attributes can be used for many reasons -- like

    • Defining which classes are serializable

    • Choosing which methods are exposed in a Web service

    Attributes allow us to add descriptions to classes, properties, and methods at design time that can then be examined at runtime via reflection.

    Consider this example:

    Say you have a class which has a method from older version which is still in use for any reason and now you have come up with a new version of the class which makes fantastic use of Generic List and LINQ and has a new method for similar purpose. You would like developers to prefer the new one provided in the later version of your library. How will you do that ? One way is to write in the documentation. A better way is to use attribute as follow.

    public class AccountsManager
    {
      [Obsolete("prefer GetAccountsList", true)]
      static Account[] GetAccounts( ) { }    
      static List GetAccountsList( ) { }      
    }
    

    If an obsolete method is used when the program is compiled, the developer gets this info and decides accordingly.

    AccountManager.GetAccounts() is obsolete: prefer GetAccountsList

    We may also create and add Custom Attributes as per requirements.

    Reference :

    • Using Attributes in C#

    Hope this helps

提交回复
热议问题