これを使用すると:InstanceContextMode.PerSession、すべてのクライアントに対してサービスを1回初期化します。私は正しい?WCF InstanceContextMode.PerSession
[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;
}
}
EDIT 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].
}
人々があなたの質問に適切な答えを与えるときには、(あなたの横にある中空の緑色のチェックマークをクリックすると)最良の答えを受け入れることが期待されます。私の提案がうまくいったように見えるので、私はそれを答えとして書き直してください。それを受け入れることができます:) – Alan