Добрый день. Если форма, на которой две кнопки (старт и стоп, которые запускают и останавливают службу)
Вот ее код:
namespace WCFServices
{
public partial class ServicesMainForm : Form
{
private int varA = 10;
private int varB = 20;
private ServiceHost selfHost;
private Uri baseAddress = new Uri("http://localhost:8000/WCFServices/");
public ServicesMainForm()
{
InitializeComponent();
}
private void bStartCalc_Click(object sender, EventArgs e)
{
selfHost = new ServiceHost(typeof(CalculatorService), baseAddress);
try
{
selfHost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "CalculatorService");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
selfHost.Description.Behaviors.Add(smb);
selfHost.Open();
bStopCalc.Enabled = true;
bStartCalc.Enabled = false;
}
catch (CommunicationException ce)
{
selfHost.Abort();
bStopCalc.Enabled = false;
bStartCalc.Enabled = true;
}
}
private void bStopCalc_Click(object sender, EventArgs e)
{
selfHost.Close();
bStopCalc.Enabled = false;
bStartCalc.Enabled = true;
}
}
}
И есть класс, реализующий саму службу:
namespace WCFServices
{
[ServiceContract(Namespace = "http://WCFServices")]
public interface ICalculator
{
[OperationContract]
double Add();
[OperationContract]
double Subtract();
[OperationContract]
double Multiply();
[OperationContract]
double Divide();
}
public class CalculatorService : ICalculator
{
private double n1 = 0;
private double n2 = 0;
public double Add()
{
return n1 + n2;
}
public double Subtract()
{
return n1 - n2;
}
public double Multiply()
{
return n1 * n2;
}
public double Divide()
{
return n1 / n2;
}
}
}
Вопрос: Как в функции, раелизующие контракты операций (
Add(), Subtract(), Multiply(), Divide()) передать переменные (
varA, varB) из главного класса
ServicesMainForm?