コード例 #1
0
        public void PersistVariables()
        {
            Dictionary <string, object> variableValueList = context.VariableValueList;

            Epi.Collections.NamedObjectCollection <Epi.IVariable> scopeVariables = ((Epi.MemoryRegion)(context.MemoryRegion)).GetVariablesInScope();

            if (variableValueList.Count > 0 || scopeVariables.Count > 0)
            {
                writer            = new XmlTextWriter(GetStream(), null);
                writer.Formatting = Formatting.Indented;
                writer.WriteStartDocument();
                writer.WriteStartElement("Variables");

                try
                {
                    foreach (Epi.IVariable var in scopeVariables)
                    {
                        if (var != null)
                        {
                            Epi.IVariable unboxed = (Epi.IVariable)var;
                            writer.WriteStartElement("Variable");
                            writer.WriteAttributeString("Name", unboxed.Name);
                            writer.WriteAttributeString("VarType", unboxed.VarType.ToString());
                            writer.WriteAttributeString("DataType", unboxed.DataType.ToString());

                            if (unboxed.VarType != VariableType.DataSource)
                            {
                                writer.WriteAttributeString("Value", unboxed.Expression);
                            }

                            writer.WriteEndElement();
                        }
                    }

                    foreach (KeyValuePair <string, object> kvp in variableValueList)
                    {
                        if (kvp.Key != null)
                        {
                            writer.WriteStartElement("Variable");
                            writer.WriteAttributeString("Name", kvp.Key);
                            writer.WriteAttributeString("Value", kvp.Value.ToString());
                            writer.WriteEndElement();
                        }
                    }

                    writer.WriteEndElement();
                    writer.WriteEndDocument();
                    writer.Flush();
                    writer.Close();
                }
                finally
                {
                    if (writer != null)
                    {
                        writer.Close();
                    }
                }
            }
        }
コード例 #2
0
        public bool TryGetVariable(string p, out EpiInfo.Plugin.IVariable var)
        {
            bool result = false;

            var = null;
            Epi.IVariable V = null;

            result = this.mContext.MemoryRegion.TryGetVariable(p, out V);

            var = (EpiInfo.Plugin.IVariable)V;

            return(result);
        }