Ejemplo n.º 1
0
        internal static unsafe ConfigurationPackage CreateFromNative(NativeRuntime.IFabricConfigurationPackage nativePackage)
        {
            ReleaseAssert.AssertIfNull(nativePackage, "nativePackage");

            string path     = NativeTypes.FromNativeString(nativePackage.get_Path());
            var    settings = ConfigurationSettings.CreateFromNative(nativePackage.get_Settings());

            var nativeDescription = *((NativeTypes.FABRIC_CONFIGURATION_PACKAGE_DESCRIPTION *)nativePackage.get_Description());
            var description       = ConfigurationPackageDescription.CreateFromNative(nativeDescription, path, settings);

            var returnValue = new ConfigurationPackage()
            {
                Description = description,
                Path        = path,
                Settings    = settings
            };

            GC.KeepAlive(nativePackage);
            return(returnValue);
        }
Ejemplo n.º 2
0
#pragma warning disable 618 // service needs to run on V2.1 cluster, so use obsolete API
                            // CodePackageActivationContext.GetConfigurationPackage
        internal static T GetConfigValue <T>(string sectionName, string parameterName, T defaultValue)
        {
            T value = defaultValue;

            ConfigurationPackageDescription configPackageDesc = codePkgActivationCtx.GetConfigurationPackage(ConfigPackageName);

            if (null != configPackageDesc)
            {
                ConfigurationSettings configSettings = configPackageDesc.Settings;
                if (null != configSettings &&
                    null != configSettings.Sections &&
                    configSettings.Sections.Contains(sectionName))
                {
                    ConfigurationSection section = configSettings.Sections[sectionName];
                    if (null != section.Parameters &&
                        section.Parameters.Contains(parameterName))
                    {
                        ConfigurationProperty property = section.Parameters[parameterName];
                        try
                        {
                            value = (T)Convert.ChangeType(property.Value, typeof(T), CultureInfo.InvariantCulture);
                        }
                        catch (Exception e)
                        {
                            serviceTrace.Error(
                                "ConfigReader.GetConfigValue: Exception occurred while reading configuration from section {0}, parameter {1}. Exception: {2}",
                                sectionName,
                                parameterName,
                                e);
                        }
                    }
                }
            }

            return(value);
        }