Mercurial > pub > bltoolkit
diff Demo/WebServices/Client/WebClient/WebClientBaseT.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Demo/WebServices/Client/WebClient/WebClientBaseT.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,39 @@ +using BLToolkit.TypeBuilder; + +namespace Demo.WebServices.Client.WebClient +{ + [System.Diagnostics.DebuggerStepThrough] + [System.ComponentModel.DesignerCategory("Code")] + public abstract class WebClientBase<T> : WebClientBase where T : WebClientBase /*<T> commented due to csc.exe bug */ + { + /// <summary> + /// Initializes a new instance of the <see cref="WebClientBase"/> class + /// using the namespace from WebServiceBinding attribute as url. + /// </summary> + protected WebClientBase() + { + } + + /// <summary> + /// Initializes a new instance of the <see cref="WebClientBase"/> class. + /// </summary> + /// <param name="relativeUrl">Path to web service, relative to <see cref="WebClientBase.BaseUrl"/>.</param> + protected WebClientBase(string relativeUrl) : base(relativeUrl) + { + } + + /// <summary> + /// Cached client instance. + /// </summary> + private static T _instance; + public static T Instance + { + get { return _instance ?? (_instance = CreateInstance()); } + } + + protected static T CreateInstance() + { + return TypeFactory.CreateInstance<T>(); + } + } +} \ No newline at end of file