private void OnConfigurableFileChanged(ICacheItem item, bool dirty)
        {
            if (dirty)
            {
                var fileCacheItem = item as IFileCacheItem;
                if (fileCacheItem == null)
                {
                    return;
                }

                IInstanceInfo         instanceInfo         = null;
                IConfigurableFileInfo configurableFileInfo = null;

                foreach (var objectName in ObjectMappings.ToArray().Where(x => string.Equals(x.Value.Path, fileCacheItem.Path)).Select(x => x.Key))
                {
                    RegisterInstances.TryRemove(objectName, out instanceInfo);

                    ObjectMappings.TryRemove(objectName, out configurableFileInfo);
                }

                if (configurableFileInfo != null)
                {
                    RegisterConfigurableFile(configurableFileInfo);
                }
            }
        }
        public override object GetObject(string objectName)
        {
            IInstanceInfo instanceInfo = null;

            if (!RegisterInstances.TryGetValue(objectName, out instanceInfo))
            {
                return(null);
            }

            return(instanceInfo.GetInstance());
        }
Beispiel #3
0
        public void RegisterInstance(IInstanceInfo instanceInfo)
        {
            if (!instanceInfo.Name.HasValue())
            {
                // TODO: throw
            }

            if (ContainsInstance(instanceInfo.Name))
            {
                return;
            }

            RegisterInstances.AddOrUpdate(instanceInfo.Name, instanceInfo, (a, b) => instanceInfo);
        }
Beispiel #4
0
 public bool ContainsInstance(string objectName)
 {
     return(RegisterInstances.ContainsKey(objectName));
 }