我正在寻找一个j#watch功能的c#等价物。我看到了一些不同的例子,但它们似乎比我的问题需要的更多。我在web api控制器中有一个变量,设置为“0”。如果对象中的值属性更改I以将变量更改为“1”
要观看的对象
public class parameters
{
public string foo { get; set; }
public string bar { get; set; }
public string widget { get; set; }
}
Api控制器
[HttpPost]
public string Post([FromBody]parameters parameters)
{
// initial value
string bChanged = "0";
//if any property value in parameters changes
string bChanged = "1";
}
答案 0 :(得分:2)
您可以编写扩展方法来检查对象值是否已更改。
public static class Extensionparameters
{
private static parameters _initialParameters;
public static void RegisterObject(this parameters parameters)
{
_initialParameters = parameters;
}
public static String CheckChanges(this parameters value)
{
if (value.bar != _initialParameters.bar || value.foo != _initialParameters.foo ||
value.widget != _initialParameters.widget)
{
return "1";
}
return "0";
}
}
然后在你的代码中你可以这样做
[HttpPost]
public string Post([FromBody]parameters parameters)
{
var initial = new parameters {bar = "a", foo = "a", widget = "a"};
initial.RegisterObject();
var changed = new parameters {bar = "v", foo = "a", widget = "a"};
string bChanged= changd.CheckChanges();
}