System.Diagnostics.Debug.WriteLine
(1)
WindowsFormsApplication3.CompanyStuff
(1)
WindowsFormsApplication3.PersonStuff
(1)
WindowsFormsApplication3.MyModule
(1)
System.Collections.Generic
(1)
System.Windows.Forms
(1)
AttributeTargets.Module
(1)
System.ComponentModel
(1)

What does it mean with Module when using AttributeUsage

Asked By Tony Johansson
08-Oct-08 02:15 PM
Hello!

You can set target Module for AttributeUsage.

I just wonder what does it mean with module ?

//Tony

Your assembly.

Asked By Peter Morris
08-Oct-08 02:43 PM
Your assembly.  For example create a WinForm app and look in
Properties\AssemblyInfo.cs

[assembly: AssemblyTitle("AccommodationManager")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AccommodationManager")]
[assembly: AssemblyCopyright("Copyright ©  2008")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

I often use this with plugins

[assembly: ReportProducerLibrary]

then on my classes

[ReportProducer]


This way when I am looking for plugins in assemblies I know not to bother
iterating all the types in the assembly if the assembly isn't tagged as a
ReportProducerLibrary.




--
Pete
====
http://mrpmorris.blogspot.com
http://www.capableobjects.com

Hello!

Asked By Tony Johansson
08-Oct-08 03:01 PM
Hello!

Did you answer what Module menas. I cannot find any
understandable answer about this Module.

Can you perhaps explain in another way?

//Tony

What does it mean with Module when using AttributeUsage

Asked By Peter Morris
09-Oct-08 03:54 AM
For some reason I read as "Assembly".  This is what a module is:
http://bytes.com/forum/thread250595.html

From my memory of reading Richter's book on .NET 1.1 some years ago you can
make an assembly up from multiple modules, however, the C# compiler creates
only a single module per assembly.  I suspect VB.net lets you create modules
within an assembly, but I don't touch that language and it's purely a guess.
Anyway, the following code illustrates that defining an attribute on a
module in C# applies it to all classes within the assembly...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Linq;
using System.Reflection;

namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var classes =
from c in typeof(Form1).Assembly.GetTypes()
where c.Module.GetCustomAttributes(typeof(MyModuleAttribute),
true).Length > 0
select c;

foreach (Type c in classes)
System.Diagnostics.Debug.WriteLine("Defined on: " + c.Name);
}
}
}



using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsFormsApplication3.CompanyStuff
{
class Company
{
}
}



using System;
using System.Collections.Generic;
using System.Text;

[module: WindowsFormsApplication3.MyModule]
namespace WindowsFormsApplication3.PersonStuff
{
class Person
{
}
}



using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsFormsApplication3
{
[AttributeUsage(AttributeTargets.Module)]
public class MyModuleAttribute : Attribute
{
}
}





--
Pete
====
http://mrpmorris.blogspot.com
http://www.capableobjects.com
Post Question To EggHeadCafe