Я загрузил последнюю версию Acuminator, и теперь я получаю предупреждения и ошибки в коде, который всегда работал.
Я получаю предупреждение PX1094, что мне нужно PXHidden или PXCacheName на некоторых локальных ЦАП внутри графика.
Существующий код:
[Serializable]
public partial class EDGetOrderFilter : IBqlTable
{
#region ReviewType
}
[Serializable]
public partial class EDIGetOrder : PX.Data.IBqlTable
{
#region Selected
// Fields from Exception table
#region ExceptID
#region intID
#region ExceptReason
#region ImportDate
}
ЦАПы в настоящее время украшены Serializable, но зачем мне также добавлять атрибут PXCacheName? Я предполагаю, что мне просто нужно:
[PXCacheName ("EDGetOrderFilter")]
[PXCacheName ("EDIGetOrder")]
Что новый атрибут делает для меня?
Я также получаю ошибку PX1050 при создании исключения с литералом
if (cntr == 0)
throw new PXException("No active Partner Data entries!");
Я перешел по ссылке на документацию, которая показывается для настройки локализуемых строк Я никогда не делал этого, и я не решаюсь изменить рабочий код. Может ли кто-нибудь объяснить мне, почему необходимы изменения?
Код из документации:
[PXLocalizable]
public static class Messages
{
public const string SpecialText = "Hardcoded String";
public const string SpecialTextToFormat = "Hardcoded String To Format {0}";
}
public string PXLocalizerAll()
{
string localizedString;
object parameter = new object();
localizedString = PXLocalizer.Localize(Messages.SpecialText);
localizedString = PXLocalizer.Localize(Messages.SpecialText, typeof(MyMessages).FullName);
localizedString = PXLocalizer.LocalizeFormat(Messages.SpecialTextToFormat, parameter);
return localizedString;
}
public class LocalizationExceptions
{
public void ExceptionsLocalization()
{
throw new PXArgumentException(nameof(ExceptionsLocalization), Messages.SpecialText);
}
}
public class DetailNonLocalizableBypassedException : PXException
{
public object ItemToBypass { get; }
public DetailNonLocalizableBypassedException(object itemToBypass)
: base(Messages.SpecialText)
{
ItemToBypass = itemToBypass;
}
}
Я никогда не использовал логику локализации и незнаком с ней. Я хочу правильно написать код, но мне нужно понять, что делают изменения.