Я делаю некоторые вещи IoT с датчиками, и я пытаюсь изменить значения температуры. Проблема в том, что я не могу изменить свойство, которое у меня есть в классе. Я использую интерфейс, класс Sensors и класс, который реализует интерфейс. Посмотрите на приведенный ниже код. Беллоу метод класса ChangeTemp(), только для испытанияC# WCF не может изменить свойство класса
public string ChangeTemp()
{
TemperaturaZrak = 12; //property value change - class sensor
return TemperaturaZrak.ToString();//just for test if really change value
}
контракт Определение интерфейса
[OperationContract]
string changeProperty();
класса, которые реализуют интерфейс
public string changeProperty()
{
return sr.ChangeTemp(); //web service return new temperature?
}
датчики Full класса
[DataContract(Name ="SmartRoomClass")]
public class SmartRoomClass
{
private double t1;
private double t2;
[DataMember(Name = "temperaturaZrak")]
public double TemperaturaZrak //getter,setter
{
get;
set;
}
public SmartRoomClass() //constructor
{
TemperaturaZrak = 15;
}
public void CheckTemperature1(double t1, double t2)
{
if (TemperaturaZrak >= t1)
{
TemperaturaZrak = 26;
}
if (TemperaturaZrak <= t2)
{
TemperaturaZrak = 22;
}
}
}
служба
namespace vaja_2sua.Services
{
public class SmartRoom : ISmartRoom
{
SmartRoomClass sr = new SmartRoomClass();
public void checkTemperature(double t1, double t2)
{
sr.CheckTemperature1(t1, t2);
}
public bool checkTemperature(double temperatura)
{
if (temperatura > 40)
return true;
else
return false;
}
public double getAirTemperature()
{
return sr.TemperaturaZrak;
}
}
}
Интерфейс
[ServiceContract(Name= "ISmartRoom")]
public interface ISmartRoom
{
[OperationContract]
void checkTemperature(double t1, double t2);
[OperationContract(Name = "GetAirTemperature")]
double getAirTemperature();
}
Я могу предоставить больше информации, если это необходимо. Приветствия.
Да, нам нужна дополнительная информация о вашей проблеме. Вы пытались вызвать службу wcf и вернули старое значение? Или у вас была другая проблема? Обратите внимание, что экземпляры служб WCF могут создаваться при каждом вызове службы. Как вы добавляете класс класса в свою службу WCF? Нужно ли сохранять и хранить определенное состояние за каждый вызов? –
Служба WCF возвращает мне то же значение, что и в конструкторе. – Ales
Кажется, что ваш сеттер или геттер TemperaturaZrak работает неправильно. См. Полный код службы (мне нужен конструктор) и класс Sensors (с свойством, backfield и другими деталями). –