//------------------------------------------------------------------------------ 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); }