我有一个名为"Dynamic“的属性和位于同一个DLL中的方法SetDefaultValues()。属性如下所示
public class ManagedProperty: DataModelObject, ISerializable
{
public bool Dynamic
{
get
{
return m_dynamic;
}
set
{
m_dynamic = value;
}
}
private bool m_dynamic = true;
}方法SetDefaultValues()会默认defult.The中的所有值,我现在面临的问题是,每当我重新启动我的窗口服务时,它都是从原始值默认的,这是一个错误。所以我想要的条件是,只要"Dynamic“属性为false,它就不应该是defult
因此,导致window服务中代码的问题如下所示。调试器显示属性Dynamic始终为true
for (int i = 0; i < allObjects.Count; i++)
{
DataModelObject dmo = (DataModelObject)allObjects.GetAt(i);
dmo.SatisfyGRs(allObjects); // Satisfy all GUID references.
if (dmo is ManagedDevice)
{
ManagedDevice md = (ManagedDevice)dmo;
// Set default values for user defined properties
if (md.SetDefaultValues())
{
SaveObject(md, false);
}
md.CheckThresholds(); // Check thresholds on all properties
}
}我修改了它,如下所示,但我不知道它是不是工作不正常,并设置为默认值。有人能告诉我这里哪里出了问题吗?或者一切都是正确的,我需要检查其他环境
for (int i = 0; i < allObjects.Count; i++)
{
DataModelObject dmo = (DataModelObject)allObjects.GetAt(i);
dmo.SatisfyGRs(allObjects); // Satisfy all GUID references.
if (dmo is ManagedDevice)
{
ManagedDevice md = (ManagedDevice)dmo;
ManagedProperty userprop = new ManagedProperty();
if (userprop.Dynamic == false){
// Set default values for user defined properties
if (md.SetDefaultValues())
{
SaveObject(md, false);
}}
md.CheckThresholds(); // Check thresholds on all properties
}
}发布于 2012-11-29 21:11:30
问题是您在字段初始化器中将m_dynamic设置为true:
private bool m_dynamic = true;然后你会得到这样的代码:
ManagedProperty userprop = new ManagedProperty();
if (userprop.Dynamic == false)它怎么可能不是真的呢?当您实例化ManagedProperty时,Dynamic每次都将为true。
https://stackoverflow.com/questions/13625479
复制相似问题