Разбор строки для слияния - PullRequest
2 голосов
/ 26 апреля 2011

Я работаю над проектом на C # и предположим, что у меня есть строка, содержащая что-то вроде этого:

string content = "[IF FullName = 'Bob Smith']Hello my friend";
content += "[ELSEIF TotalPurchases > 1000]Dear valued customer";
content += "[ELSE]Dear [FirstName]";
content += "[ENDIF]";

и давайте предположим, что у меня есть словарь Key / Value, где ключи - "FullName" и "TotalPurchases", а значения - "Jane Doe" и "500". Что было бы хорошим способом для анализа содержимого и, что наиболее важно, для оценки "IF ... ELSE ... ENDIF"?

Есть ли проект с открытым исходным кодом, который я могу использовать, или я должен просто написать свой собственный код для разбора содержимого?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2011

Один из вариантов - заменить текстовые данные 'If Else End If', приведенные выше, фактической логикой оператора C # if и скомпилировать динамически создаваемый текст C # во время выполнения, чтобы оценить вашу логику if.Основным классом для обработки этой динамической компиляции C # будет класс CSharpCodeProvider

CsharpCodeProvider info http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx

0 голосов
/ 26 апреля 2011

Я немного растерялся.Это действительно ваша строка, или вы говорите о строке, которая будет сгенерирована этим исходным кодом C #?

Я предполагаю последний вариант, и я, вероятно, просто проанализирую его сам, так как он не слишком сложен инесколько специализированный.Существует также вспомогательный класс анализатора текста , который я написал, который может вам помочь.

...