首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问位于不同DLL中的属性

如何访问位于不同DLL中的属性
EN

Stack Overflow用户
提问于 2012-11-29 20:06:11
回答 1查看 94关注 0票数 1

我有一个名为"Dynamic“的属性和位于同一个DLL中的方法SetDefaultValues()。属性如下所示

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
                          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
                                        }
                                    }

我修改了它,如下所示,但我不知道它是不是工作不正常,并设置为默认值。有人能告诉我这里哪里出了问题吗?或者一切都是正确的,我需要检查其他环境

代码语言:javascript
运行
复制
                          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
                                        }
                                    }
EN

回答 1

Stack Overflow用户

发布于 2012-11-29 21:11:30

问题是您在字段初始化器中将m_dynamic设置为true:

代码语言:javascript
运行
复制
private bool m_dynamic = true;

然后你会得到这样的代码:

代码语言:javascript
运行
复制
ManagedProperty userprop = new ManagedProperty();
if (userprop.Dynamic == false)

它怎么可能不是真的呢?当您实例化ManagedProperty时,Dynamic每次都将为true。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13625479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档