|
using System;
namespace Hik.Communication.ScsServices.Service
{
/// <summary>
/// Base class for all services that is serviced by IScsServiceApplication.
/// A class must be derived from ScsService to serve as a SCS service.
/// </summary>
public abstract class ScsService
{
/// <summary>
/// The current client for a thread that called service method.
/// </summary>
[ThreadStatic]
private static IScsServiceClient _currentClient;
/// <summary>
/// Gets the current client which called this service method.
/// </summary>
/// <remarks>
/// This property is thread-safe, if returns correct client when
/// called in a service method if the method is called by SCS system,
/// else throws exception.
/// </remarks>
protected internal IScsServiceClient CurrentClient
{
get
{
if (_currentClient == null)
{
throw new Exception("Client channel can not be obtained. CurrentClient property must be called by the thread which runs the service method.");
}
return _currentClient;
}
internal set
{
_currentClient = value;
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I have started programming at 14 years old using Pascal as hobby. Then I interested in web development (HTML, JavaScript, ASP...) before university.
I graduated from Sakarya University Computer Engineering. At university, I learned C++, Visual Basic.NET, C#, ASP.NET and Java. I partly implemented ARP, IP and TCP protocols in Java as my final term project.
Now, I am working on Windows and web based software development mostly using Microsoft technologies in my own company.
My open source projects:
* ABP Framework:
https://abp.io
* jTable:
http://jtable.org
* Others:
https://github.com/hikalkan
My personal web site:
https://halilibrahimkalkan.com