예제 #1
0
        private FieldSourceCatalog()
        {
            List <IFieldSource> fieldSources = new List <IFieldSource>();

            foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
            {
                Type[] types = assembly.GetTypes();
                foreach (Type t in types)
                {
                    Type[] interfaces = t.GetInterfaces();
                    if (interfaces.Contains(typeof(IFieldSource)) && !t.IsAbstract &&
                        t != typeof(NothignFieldSource))
                    {
                        try
                        {
                            IFieldSource o = (IFieldSource)Activator.CreateInstance(t);
                            if (o != null)
                            {
                                fieldSources.Add(o);
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                    }
                }
            }
            fieldSources = fieldSources.OrderBy(o => o.Category, StringComparer.OrdinalIgnoreCase)
                           .ThenBy(o => o.Name, StringComparer.OrdinalIgnoreCase).ToList();
            fieldSources.Insert(0, new NothignFieldSource());
            m_FieldSources = fieldSources.ToArray();
        }
예제 #2
0
파일: Field.cs 프로젝트: jlaanstra/Munq
 public Field(String name, FieldOptions fieldOptions, IFieldSource source)
 {
     Name         = name;
     FieldOptions = fieldOptions;
     Source       = source;
     Boost        = 1.0f;
 }
예제 #3
0
 public Field(String name, FieldOptions fieldOptions, IFieldSource source)
 {
     Name         = name;
     FieldOptions = fieldOptions;
     Source       = source;
     Boost        = 1.0f;
 }
예제 #4
0
        public bool Read(out object value)
        {
            IFieldSource changedSource = this.GetSources().FirstOrDefault(f => f.HasChanged);

            if (changedSource != null)
            {
                value = changedSource.Value;

                return(true);
            }

            value = null;

            return(false);
        }