Re: Вопрос про область действия CER
От: romangr Россия  
Дата: 04.05.20 06:37
Оценка: 5 (1)
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Накрыли сомнения насчет CER


КД>
КД>RuntimeHelpers.PrepareConstrainedRegions();

КД>try
КД>{
КД>}
КД>finally
КД>{
КД> List__Remove(x);
КД> List__PushFront(x);
КД>}

КД>//....
КД>static void List__Remove(Node x)
КД>{
КД> //....
КД>}

КД>static void List__PushFront(Node x)
КД>{
КД> //....
КД>}
КД>


КД>Когда я из finally вызову методы List__xxxx, там внутри "CER" будет продолжать действовать?


Насколько я помню нужно весь call graph внутри CER помечать ReliabilityContractAttribute, методы List__Remove и List__PushFront должны стать типа
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
static void List__Remove(Node x)
{
}

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
static void List__PushFront(Node x)
{
}
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.