我的本地化属性有问题,例如:
public class LocalizedDisplayNameAttribute : DisplayNameAttribute
{
public LocalizedDisplayNameAttribute(string resourceId)
: base(GetMessageFromResource(resourceId))
{ }
private static string GetMessageFromResource(string resourceId)
{
var propertyInfo = typeof(Lockit).GetProperty(resourceId, BindingFlags.Static | BindingFlags.Public);
return (string)propertyInfo.GetValue(null, null);
}
}
当我使用具有此属性的属性时,它在 PropertyGrid 中本地化,但是当我更改当前 CultureInfo 时,即使我再次创建此 PropertyGrid,它也不会刷新。我尝试通过以下方式手动调用此属性:
foreach (PropertyInfo propertyInfo in myPropertiesInfoTab)
{
object[] custom_attributes = propertyInfo.GetCustomAttributes(false);
}
调用了属性构造函数,但新创建的 PropertyGrid 仍然具有旧区域性显示名称的属性(始终与第一次创建的值相同)。
当我重新启动应用程序时它可以工作,但我不想这样做。有什么解决办法吗?