Esempio n. 1
0
        /// <summary>
        /// Aquire the storage provider associated with the grain type.
        /// </summary>
        /// <returns></returns>
        public static IStorageProvider GetStorageProvider(this Grain grain, IServiceProvider services)
        {
            StorageProviderAttribute attr            = grain.GetType().GetTypeInfo().GetCustomAttributes <StorageProviderAttribute>(true).FirstOrDefault();
            IStorageProvider         storageProvider = attr != null
                ? services.GetServiceByName <IStorageProvider>(attr.ProviderName)
                : services.GetService <IStorageProvider>();

            if (storageProvider == null)
            {
                var errMsg = string.Format("No storage providers found loading grain type {0}", grain.GetType().FullName);
                throw new BadProviderConfigException(errMsg);
            }
            return(storageProvider);
        }
Esempio n. 2
0
        /// <summary>
        /// Aquire the storage provider associated with the grain type.
        /// </summary>
        /// <returns></returns>
        public static IGrainStorage GetGrainStorage(this Grain grain, IServiceProvider services)
        {
            StorageProviderAttribute attr            = grain.GetType().GetCustomAttributes <StorageProviderAttribute>(true).FirstOrDefault();
            IGrainStorage            storageProvider = attr != null
                ? services.GetServiceByName <IGrainStorage>(attr.ProviderName)
                : services.GetService <IGrainStorage>();

            if (storageProvider == null)
            {
                ThrowMissingProviderException(grain, attr?.ProviderName);
            }

            return(storageProvider);
        }