Пользовательская политика регистрации: доступ к файлам из файлов изменений

Я пытаюсь записать мою собственную политику регистрации. Я хочу проверить, если какой-либо файл.cs содержит некоторый код. Поэтому мой вопрос: возможно ли получить содержимое каждого файла из набора изменений в переопределенных Initialize-Methode и / или Evaluate-Methode (из PolicyBase).

Заранее спасибо!

1 ответ

Решение

Вы не можете получить содержимое файлов напрямую, вам нужно открыть их самостоятельно. Для каждого зарегистрированного в вашем Evaluate метод, вы должны посмотреть на PendingCheckin.PendingChanges.CheckedPendingChanges (чтобы убедиться, что вы ограничиваетесь только ожидающими изменениями, которые будут проверены.) Каждый PendingChange имеет LocalItem что вы можете открыть и сканировать.

Например:

public override PolicyFailure[] Evaluate()
{
    List<PolicyFailure> failures = new List<PolicyFailure>();

    foreach(PendingChange pc in PendingCheckin.PendingChanges.CheckedPendingChanges)
    {
        if(pc.LocalItem == null)
        {
            continue;
        }

        /* Open the file */
        using(FileStream fs = new FileStream(pc.LocalItem, ...))
        {
            if(/* File contains your prohibited code */)
            {
                failures.Add(new PolicyFailure(/* Explain the problem */));
            }

            fs.Close();
        }
    }

    return failures.ToArray();
}
Другие вопросы по тегам