Example #1
0
        //------------------------------------------------------------------------------
        static public T GetClassMetadata <T>(WeakReference weakContext, string metadataName, T defaultValue)
        {
            IPluginContext context = (IPluginContext)weakContext.Target;

            object metadataValue;
            bool   exists = context.TryGetClassMetadata(metadataName, out metadataValue);

            if (!exists)
            {
                return(defaultValue);
            }

            try
            {
                return((T)metadataValue);
            }
            catch (InvalidCastException exc)
            {
                InternalConfiguration.PlatformHelper.Log(LogLevel.Error, exc);

                var msg = String.Format("InvalidCastException when try to cast class metadata '{0}'. Use default value instead.", metadataName);
                InternalConfiguration.PlatformHelper.Log(LogLevel.Error, msg);
            }

            return(defaultValue);
        }