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