Здравствуйте, Аноним, Вы писали:
А>А как мне у кэшированого элемента поменять права доступа (напр. с public на internal) и прочие модификаторы (readonly, static, ...)? А>Т.е. с помощью IDeclarationsCache я получаю корневой IDeclaredElement и гуляю дальше по нему — видеть все эти модификаторы я могу — геттеры на них есть, а сеттеров нет, или они гдето глубже спрятаны. Или надо по другому дереву гулять?
перейди к декларациям, с элементами кэша ты ничего сделать не сможешь (например, если они из ассембли)
Пример
{code}
IDeclaredElement declaredElement;
foreach( var decl in declaredElement.GetDeclarations() ) {
var modifiersOwner = decl as IModifiersOwnerDeclaration;
if( modifiersOwner != null )
modifiersOwner.SetAccesRights( AccessRights.PUBLIC );
}
{code}