summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Core/Util.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2013-01-01 07:50:22 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2013-01-01 07:50:22 -0800
commit6e9889a61aa3fac1331d14ef18c95718c198c831 (patch)
tree05eba3233336d6e3703f5c632571cc5048aefc85 /src/DotNetOpenAuth.Core/Util.cs
parenta72f4df236e67f9c965863b6c43954b085cf8f6b (diff)
downloadDotNetOpenAuth-6e9889a61aa3fac1331d14ef18c95718c198c831.zip
DotNetOpenAuth-6e9889a61aa3fac1331d14ef18c95718c198c831.tar.gz
DotNetOpenAuth-6e9889a61aa3fac1331d14ef18c95718c198c831.tar.bz2
OpenID RP login actually works now.
Diffstat (limited to 'src/DotNetOpenAuth.Core/Util.cs')
-rw-r--r--src/DotNetOpenAuth.Core/Util.cs32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/DotNetOpenAuth.Core/Util.cs b/src/DotNetOpenAuth.Core/Util.cs
index 279b7d3..ff91df1 100644
--- a/src/DotNetOpenAuth.Core/Util.cs
+++ b/src/DotNetOpenAuth.Core/Util.cs
@@ -8,11 +8,11 @@ namespace DotNetOpenAuth {
using System.Collections.Generic;
using System.Globalization;
using System.Net;
+ using System.Net.Http.Headers;
using System.Reflection;
using System.Text;
using System.Web;
using System.Web.UI;
-
using DotNetOpenAuth.Configuration;
using DotNetOpenAuth.Messaging;
using DotNetOpenAuth.Messaging.Reflection;
@@ -32,20 +32,34 @@ namespace DotNetOpenAuth {
/// </summary>
private static IEmbeddedResourceRetrieval embeddedResourceRetrieval = MessagingElement.Configuration.EmbeddedResourceRetrievalProvider.CreateInstance(null, false, null);
+ private static readonly Lazy<string> libraryVersionLazy = new Lazy<string>(delegate {
+ var assembly = Assembly.GetExecutingAssembly();
+ string assemblyFullName = assembly.FullName;
+ bool official = assemblyFullName.Contains("PublicKeyToken=2780ccd10d57b246");
+ assemblyFullName = assemblyFullName.Replace(assembly.GetName().Version.ToString(), AssemblyFileVersion);
+
+ // We use InvariantCulture since this is used for logging.
+ return string.Format(CultureInfo.InvariantCulture, "{0} ({1})", assemblyFullName, official ? "official" : "private");
+ });
+
+ private static readonly Lazy<ProductInfoHeaderValue> libraryVersionHeaderLazy = new Lazy<ProductInfoHeaderValue>(delegate {
+ var assemblyName = Assembly.GetExecutingAssembly().GetName();
+ return new ProductInfoHeaderValue(assemblyName.Name, AssemblyFileVersion);
+ });
+
/// <summary>
/// Gets a human-readable description of the library name and version, including
/// whether the build is an official or private one.
/// </summary>
internal static string LibraryVersion {
- get {
- var assembly = Assembly.GetExecutingAssembly();
- string assemblyFullName = assembly.FullName;
- bool official = assemblyFullName.Contains("PublicKeyToken=2780ccd10d57b246");
- assemblyFullName = assemblyFullName.Replace(assembly.GetName().Version.ToString(), AssemblyFileVersion);
+ get { return libraryVersionLazy.Value; }
+ }
- // We use InvariantCulture since this is used for logging.
- return string.Format(CultureInfo.InvariantCulture, "{0} ({1})", assemblyFullName, official ? "official" : "private");
- }
+ /// <summary>
+ /// Gets an HTTP header that can be included in outbound requests.
+ /// </summary>
+ internal static ProductInfoHeaderValue LibraryVersionHeader {
+ get { return libraryVersionHeaderLazy.Value; }
}
/// <summary>