Merge pull request #3144 from Unity-Technologies/fix-recursive-property-call
[mono.git] / mcs / class / referencesource / System.Web / Util / AssemblyUtil.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="AssemblyUtil.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //------------------------------------------------------------------------------
6
7 using System;
8 using System.Reflection;
9
10 namespace System.Web.Util {
11     internal static class AssemblyUtil {
12         private const string _emptyFileVersion = "0.0.0.0";
13
14         public static string GetAssemblyFileVersion(Assembly assembly) {
15             AssemblyFileVersionAttribute[] attributes =
16                 (AssemblyFileVersionAttribute[])assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
17
18             string version;
19             if (attributes.Length > 0) {
20                 version = attributes[0].Version;
21                 if (String.IsNullOrEmpty(version)) {
22                     version = _emptyFileVersion;
23                 }
24             }
25             else {
26                 version = _emptyFileVersion;
27             }
28             return version;
29         }
30     }
31 }