1 // ==++==
2 //
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.
4 //
5 // ==--==
6 /*=============================================================================
7 **
8 ** File: AssemblyAttributes
9 **
10 ** <OWNER>Microsoft</OWNER>
11 **
12 **
13 ** Purpose: For Assembly-related custom attributes.
14 **
15 **
16 =============================================================================*/
17 
18 namespace System.Reflection {
19 
20     using System;
21     using System.Configuration.Assemblies;
22     using System.Diagnostics.Contracts;
23 
24     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
25 [System.Runtime.InteropServices.ComVisible(true)]
26     public sealed class AssemblyCopyrightAttribute : Attribute
27     {
28         private String m_copyright;
29 
AssemblyCopyrightAttribute(String copyright)30         public AssemblyCopyrightAttribute(String copyright)
31         {
32             m_copyright = copyright;
33         }
34 
35         public String Copyright
36         {
37             get { return m_copyright; }
38         }
39     }
40 
41 
42     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
43 [System.Runtime.InteropServices.ComVisible(true)]
44     public sealed class AssemblyTrademarkAttribute : Attribute
45     {
46         private String m_trademark;
47 
AssemblyTrademarkAttribute(String trademark)48         public AssemblyTrademarkAttribute(String trademark)
49         {
50             m_trademark = trademark;
51         }
52 
53         public String Trademark
54         {
55             get { return m_trademark; }
56         }
57     }
58 
59 
60     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
61 [System.Runtime.InteropServices.ComVisible(true)]
62     public sealed class AssemblyProductAttribute : Attribute
63     {
64         private String m_product;
65 
AssemblyProductAttribute(String product)66         public AssemblyProductAttribute(String product)
67         {
68             m_product = product;
69         }
70 
71         public String Product
72         {
73             get { return m_product; }
74         }
75     }
76 
77 
78     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
79 [System.Runtime.InteropServices.ComVisible(true)]
80     public sealed class AssemblyCompanyAttribute : Attribute
81     {
82         private String m_company;
83 
AssemblyCompanyAttribute(String company)84         public AssemblyCompanyAttribute(String company)
85         {
86             m_company = company;
87         }
88 
89         public String Company
90         {
91             get { return m_company; }
92         }
93     }
94 
95 
96     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
97 [System.Runtime.InteropServices.ComVisible(true)]
98     public sealed class AssemblyDescriptionAttribute : Attribute
99     {
100         private String m_description;
101 
AssemblyDescriptionAttribute(String description)102         public AssemblyDescriptionAttribute(String description)
103         {
104             m_description = description;
105         }
106 
107         public String Description
108         {
109             get { return m_description; }
110         }
111     }
112 
113 
114     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
115 [System.Runtime.InteropServices.ComVisible(true)]
116     public sealed class AssemblyTitleAttribute : Attribute
117     {
118         private String m_title;
119 
AssemblyTitleAttribute(String title)120         public AssemblyTitleAttribute(String title)
121         {
122             m_title = title;
123         }
124 
125         public String Title
126         {
127             get { return m_title; }
128         }
129     }
130 
131 
132     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
133 [System.Runtime.InteropServices.ComVisible(true)]
134     public sealed class AssemblyConfigurationAttribute : Attribute
135     {
136         private String m_configuration;
137 
AssemblyConfigurationAttribute(String configuration)138         public AssemblyConfigurationAttribute(String configuration)
139         {
140             m_configuration = configuration;
141         }
142 
143         public String Configuration
144         {
145             get { return m_configuration; }
146         }
147     }
148 
149 
150     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
151 [System.Runtime.InteropServices.ComVisible(true)]
152     public sealed class AssemblyDefaultAliasAttribute : Attribute
153     {
154         private String m_defaultAlias;
155 
AssemblyDefaultAliasAttribute(String defaultAlias)156         public AssemblyDefaultAliasAttribute(String defaultAlias)
157         {
158             m_defaultAlias = defaultAlias;
159         }
160 
161         public String DefaultAlias
162         {
163             get { return m_defaultAlias; }
164         }
165     }
166 
167 
168     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
169 [System.Runtime.InteropServices.ComVisible(true)]
170     public sealed class AssemblyInformationalVersionAttribute : Attribute
171     {
172         private String m_informationalVersion;
173 
AssemblyInformationalVersionAttribute(String informationalVersion)174         public AssemblyInformationalVersionAttribute(String informationalVersion)
175         {
176             m_informationalVersion = informationalVersion;
177         }
178 
179         public String InformationalVersion
180         {
181             get { return m_informationalVersion; }
182         }
183     }
184 
185 
186     [AttributeUsage(AttributeTargets.Assembly, Inherited=false)]
187 [System.Runtime.InteropServices.ComVisible(true)]
188     public sealed class AssemblyFileVersionAttribute : Attribute
189     {
190         private String _version;
191 
AssemblyFileVersionAttribute(String version)192         public AssemblyFileVersionAttribute(String version)
193         {
194             if (version == null)
195                 throw new ArgumentNullException("version");
196             Contract.EndContractBlock();
197             _version = version;
198         }
199 
200         public String Version {
201             get { return _version; }
202         }
203     }
204 
205 
206     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
207 [System.Runtime.InteropServices.ComVisible(true)]
208     public unsafe sealed class AssemblyCultureAttribute : Attribute
209     {
210         private String m_culture;
211 
AssemblyCultureAttribute(String culture)212         public AssemblyCultureAttribute(String culture)
213         {
214             m_culture = culture;
215         }
216 
217         public String Culture
218         {
219             get { return m_culture; }
220         }
221     }
222 
223 
224     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
225 [System.Runtime.InteropServices.ComVisible(true)]
226     public unsafe sealed class AssemblyVersionAttribute : Attribute
227     {
228         private String m_version;
229 
AssemblyVersionAttribute(String version)230         public AssemblyVersionAttribute(String version)
231         {
232             m_version = version;
233         }
234 
235         public String Version
236         {
237             get { return m_version; }
238         }
239     }
240 
241 
242     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
243 [System.Runtime.InteropServices.ComVisible(true)]
244     public sealed class AssemblyKeyFileAttribute : Attribute
245     {
246         private String m_keyFile;
247 
AssemblyKeyFileAttribute(String keyFile)248         public AssemblyKeyFileAttribute(String keyFile)
249         {
250             m_keyFile = keyFile;
251         }
252 
253         public String KeyFile
254         {
255             get { return m_keyFile; }
256         }
257     }
258 
259 
260     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
261 [System.Runtime.InteropServices.ComVisible(true)]
262     public sealed class AssemblyDelaySignAttribute : Attribute
263     {
264         private bool m_delaySign;
265 
AssemblyDelaySignAttribute(bool delaySign)266         public AssemblyDelaySignAttribute(bool delaySign)
267         {
268             m_delaySign = delaySign;
269         }
270 
271         public bool DelaySign
272         { get
273             { return m_delaySign; }
274         }
275     }
276 
277 
278     [AttributeUsage(AttributeTargets.Assembly, Inherited=false)]
279 [System.Runtime.InteropServices.ComVisible(true)]
280     public unsafe sealed class AssemblyAlgorithmIdAttribute : Attribute
281     {
282         private uint m_algId;
283 
AssemblyAlgorithmIdAttribute(AssemblyHashAlgorithm algorithmId)284         public AssemblyAlgorithmIdAttribute(AssemblyHashAlgorithm algorithmId)
285         {
286             m_algId = (uint) algorithmId;
287         }
288 
289         [CLSCompliant(false)]
AssemblyAlgorithmIdAttribute(uint algorithmId)290         public AssemblyAlgorithmIdAttribute(uint algorithmId)
291         {
292             m_algId = algorithmId;
293         }
294 
295         [CLSCompliant(false)]
296         public uint AlgorithmId
297         {
298             get { return m_algId; }
299         }
300     }
301 
302 
303     [AttributeUsage(AttributeTargets.Assembly, Inherited=false)]
304 [System.Runtime.InteropServices.ComVisible(true)]
305     public unsafe sealed class AssemblyFlagsAttribute : Attribute
306     {
307         private AssemblyNameFlags m_flags;
308 
309         [Obsolete("This constructor has been deprecated. Please use AssemblyFlagsAttribute(AssemblyNameFlags) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
310         [CLSCompliant(false)]
AssemblyFlagsAttribute(uint flags)311         public AssemblyFlagsAttribute(uint flags)
312         {
313             m_flags = (AssemblyNameFlags)flags;
314         }
315 
316         [Obsolete("This property has been deprecated. Please use AssemblyFlags instead. http://go.microsoft.com/fwlink/?linkid=14202")]
317         [CLSCompliant(false)]
318         public uint Flags
319         {
320             get { return (uint)m_flags; }
321         }
322 
323         // This, of course, should be typed as AssemblyNameFlags.  The compat police don't allow such changes.
324         public int AssemblyFlags
325         {
326             get { return (int)m_flags; }
327         }
328 
329         [Obsolete("This constructor has been deprecated. Please use AssemblyFlagsAttribute(AssemblyNameFlags) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
AssemblyFlagsAttribute(int assemblyFlags)330         public AssemblyFlagsAttribute(int assemblyFlags)
331         {
332             m_flags = (AssemblyNameFlags)assemblyFlags;
333         }
334 
335 
AssemblyFlagsAttribute(AssemblyNameFlags assemblyFlags)336         public AssemblyFlagsAttribute(AssemblyNameFlags assemblyFlags)
337         {
338             m_flags = assemblyFlags;
339         }
340     }
341 
342     [AttributeUsage(AttributeTargets.Assembly, AllowMultiple=true, Inherited=false)]
343     public sealed class AssemblyMetadataAttribute : Attribute
344     {
345         private String m_key;
346         private String m_value;
347 
AssemblyMetadataAttribute(string key, string value)348         public AssemblyMetadataAttribute(string key, string value)
349         {
350             m_key = key;
351             m_value = value;
352         }
353 
354         public string Key
355         {
356             get { return m_key; }
357         }
358 
359         public string Value
360         {
361             get { return m_value;}
362         }
363     }
364 
365 #if FEATURE_STRONGNAME_MIGRATION
366     [AttributeUsage(AttributeTargets.Assembly, Inherited = false, AllowMultiple=false)]
367     public sealed class AssemblySignatureKeyAttribute : Attribute
368     {
369         private String _publicKey;
370         private String _countersignature;
371 
AssemblySignatureKeyAttribute(String publicKey, String countersignature)372         public AssemblySignatureKeyAttribute(String publicKey, String countersignature)
373         {
374             _publicKey = publicKey;
375             _countersignature = countersignature;
376         }
377 
378         public String PublicKey
379         {
380             get { return _publicKey; }
381         }
382 
383         public String Countersignature
384         {
385             get { return _countersignature; }
386         }
387     }
388 #endif
389 
390     [AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
391 [System.Runtime.InteropServices.ComVisible(true)]
392     public sealed class AssemblyKeyNameAttribute : Attribute
393     {
394         private String m_keyName;
395 
AssemblyKeyNameAttribute(String keyName)396         public AssemblyKeyNameAttribute(String keyName)
397         {
398             m_keyName = keyName;
399         }
400 
401         public String KeyName
402         {
403             get { return m_keyName; }
404         }
405     }
406 
407 }
408 
409