我有一个属性称为“动态”和方法SetDefaultValues()
位于相同的DLL。属性如下所示如何访问位于不同的DLL
public class ManagedProperty: DataModelObject, ISerializable
{
public bool Dynamic
{
get
{
return m_dynamic;
}
set
{
m_dynamic = value;
}
}
private bool m_dynamic = true;
}
方法SetDefaultValues()将所有默认值中defult.The的问题,现在我面临的是每当我重新启动我的窗口服务,它是从一个错误原值违约。所以我想要的条件是每当“动态”属性是假的,它不应该狡猾
因此,窗口服务中导致代码的问题如下所示。调试器显示属性的动态总是如此
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
}
}
这是全部内存,对不对?当您重新启动服务时,内存中的所有内容都将丢失。如果你想在重新启动之间保持状态,那么你需要在重新启动之前保持该状态(文件,DB等),然后在重新启动之后加载该状态。 –
@鲍勃霍恩,没有重新启动之前我保存,我可以看到数据库xml中的值,但是当我重新启动一切defalut。我的助手没有正确连接,我是如何知道这个问题导致的意思,当我评论这段代码时,它正常工作 – ponting
你在if语句中只是有一个错误吗?你说什么时候它是错误的,它不应该默认。你的陈述不应该像这样:'if(userprop.Dynamic!= false)'?就目前来看,只有在它已经是假的时候它才会默认。 –