[Mono-list] Question about attributes

xiii29@free.fr xiii29@free.fr
Thu, 29 Apr 2004 13:35:07 +0200


Ok, so there is no recommendation about attributes to use in mono for 
documentation...

I don't want using XML tags as it doesn't work with VB.Net by default (I 
think...) and you have to deliver : assembly and XML file ... So I will create 
some attributes !

Thanks for all the answer !

Thierry


Selon Jonathan Stowe <gellyfish@gellyfish.com>:

> On Thu, 2004-04-29 at 07:56, xiii29@free.fr wrote:
> > Hi,
> > 
> > First : Thanks for the explanation ;-)
> > 
> > But my question what about which attributes using in order to document
> methods 
> > or function in my code.
> > 
> > For example, if you want the Visual Studio .Net Property Panel to be able
> to 
> > display info about your properties you have to use 
> > System.ComponentModel.Description("The description"). 
> > 
> 
> You can do just the same with mono:
> 
> using System;
> using System.ComponentModel;
>                                                                              
>   
> class MyTest
> {
>         [Description("Test")]
>         public void whatever()
>         {
>                           
>         }
> }
> 
> Will work (i.e. compile) just fine.  Whether or not it is any use is
> whether the tools you want to use can get at this information.  The
> DescriptionAttribute is used for design time purposes (i.e. to display
> in the properties panel of a visual tool) rather than strictly for
> documentation, if you want to autogenerate documentation from your code
> you might me better of using the XML documentation comments rather than
> this.
> 
> Of course you can create your own attributes by inheriting from
> System.Attribute as documented on MSDN and elsewhere.
> 
> /J\
> 
> > This is a Visual Studio .Net rules.
> > 
> > Now my question is : of I want to add documention to my methods, class
> etc... 
> > which meta-attributes do I use ? 
> > 
> > Maybe there is no dedicated attributes and I will have to create my
> owns...
> > 
> > Thierry !
> > 
> > 
> > Selon Jonathan Pryor <jonpryor@vt.edu>:
> > 
> > > On Wed, 2004-04-28 at 16:46, Xiii29 wrote:
> > > > I've question about attributes in Mono. I would like to comment my
> > > > assemblys by using attributes (meta-attributes...) and i'm wondering
> if
> > > > there is "rules" (or preconisations...) about which attributes
> using...
> > > 
> > > I'm pretty sure I don't understand your question at all.  But I'll take
> > > a shot anyway...
> > > 
> > > To use an assembly-level attribute, you need to explicitly specify what
> > > the attribute is associated with.  For example:
> > > 
> > > 	[assembly: AssemblyTitle ("my title")]
> > > 	[assembly: AssemblyVersion ("1.0.*")]
> > > 
> > > The "assembly:" indicates that the attribute applies to the assembly. 
> > > Otherwise it would apply to the next member listed in the file
> > > (delegate, class, structure, etc.) or generate an error (namespaces
> > > don't support attributes).  Similar things can be done for other
> > > elements; for example: "return:" can be used to place an attribute on
> > > the return type of a method, while normally the attribute applies to the
> > > method itself:
> > > 
> > > 	[SomeAttribute ("applies to MyMethod")]
> > > 	[return: SomeAttribute ("applies to the return type")]
> > > 	int MyMethod () {return 42;}
> > > 
> > > As for general rules...  You can only use attributes which can be
> > > applied to an assembly; that is, the attribute you're trying to use must
> > > itself have an AttributeUsage attribute with AttributeTargets.Assembly
> > > specified.  Not all attributes do this; the DllImport attribute, for
> > > example, can only be applied to methods.
> > > 
> > > Aside from that, the normal attribute restrictions apply.  Which means
> > > that attribute positional and named parameters can only be: one of the
> > > CLS-compliant built-in types (bool, byte, char, double, float, int,
> > > long, short, string); System.Type, an enum type; System.Object; or an
> > > array of one of the previous types.
> > > 
> > > See a good C# book, or MSDN, or google, for more information.
> > > 
> > >  - Jon
> > > 
> > > 
> > > 
> > 
> > 
> > _______________________________________________
> > Mono-list maillist  -  Mono-list@lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-list
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>