Цитата:
Сообщение от
mazzy
Как вести разработку с минимальными в долгосрочной перспективе трудозатратами
в условиях, есть куча унаследованного кода И часть кода закрыта от изменения,
а платформа предоставляет систему событий и подписок?
что должен сделать вендор?
что может сделать партнер/заказчик своими силами?
Каким бы нехорошим не был подход с рефлексией, но он заслуживает серьезного внимания.
https://ievgensaxblog.wordpress.com/...xtension-code/
X++:
using System.Reflection;
/// <summary>
/// Handles events raised by <c>SalesLineTypeEventHandler</c> class.
/// </summary>
public class SalesLineTypeEventHandler
{
[PostHandlerFor(classStr(SalesLineType), methodStr(SalesLineType, insert))]
public static void SalesLineType_Post_insert(XppPrePostArgs _args)
{
SalesLineType salesLineType = _args.getThis();
var bindFlags = BindingFlags::Instance | BindingFlags::NonPublic;
var field = salesLineType.GetType().GetField("salesLine", bindFlags);
SalesLine salesLine = field.GetValue(salesLineType);
if (salesLine)
{
salesLine.MyNewField = 42;
salesLine.doUpdate();
}
}
}
Вендор же никому ничего не должен