Добрый день. Если форма, на которой две кнопки (старт и стоп, которые запускают и останавливают службу)
Вот ее код:
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?
Здравствуйте, lutikman, Вы писали:
L>И есть класс, реализующий саму службу:
L>L>namespace WCFServices
L>{
L> [ServiceContract(Namespace = "http://WCFServices")]
L> public interface ICalculator
L> {
L> [OperationContract]
L> double Add();
L> [OperationContract]
L> double Subtract();
L> [OperationContract]
L> double Multiply();
L> [OperationContract]
L> double Divide();
L> }
L>
L>Вопрос: Как в функции, раелизующие контракты операций (Add(), Subtract(), Multiply(), Divide()) передать переменные (varA, varB) из главного класса ServicesMainForm?
Доброе ....
Поменять контракт?
namespace WCFServices
{
[ServiceContract(Namespace = "http://WCFServices")]
public interface ICalculator
{
[OperationContract]
double Add(double v1, double v2);
[OperationContract]
double Subtract(double v1, double v2);
[OperationContract]
double Multiply(double v1, double v2);
[OperationContract]
double Divide(double v1, double v2);
}
}
--