これを使用する場合: InstanceContextMode.PerSession の場合、クライアントごとにサービスを 1 回初期化します。私は正しいですか?
[OperationBehavior(TransactionScopeRequired = true)] を持つメソッドを呼び出すと、JobImplement コンストラクターが呼び出されます。なんで?
私のサービス:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class JobImplement : IJob
{
public static int Sum = 0;
public JobImplement()
{
Sum++;
}
[OperationBehavior(TransactionScopeRequired = true)]
public void UselessMethod1()
{
}
[OperationBehavior(TransactionScopeRequired = true)]
public void AddEmployee(string Name, string Age)
{
}
public int GetSum()
{
return Sum;
}
}
編集1:
私は WSHttpBinding バインディングを使用しています。これが私の唯一のクライアント コードです。
私の顧客:
static void Main(string[] args)
{
ServiceReference1.IJob Service1 = new ServiceReference1.JobClient();
Service1.UselessMethod1();//sum become [1]
Service1.AddEmployee("","");//sum become [2]
Console.WriteLine(Service1.GetSum());//show [2].
Console.WriteLine(Service1.GetSum());//show [2].
Console.WriteLine(Service1.GetSum());//show [2].
}