Как я могу динамически оценивать код C#?
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Этот ответ был написан еще reflection в 2008 году. С тех пор ландшафт c-sharp сильно изменился.
Посмотрите property на другие ответы на этой c# странице, особенно на ответ c# Microsoft.CodeAnalysis.CSharp.Scripting
.
Остальная часть ответа будет visual-c# оставлена в том виде, в visual-c# котором она была первоначально reflection опубликована, но уже не является c#.net точной.
К сожалению, C# не c#.net является таким динамическим .cs-file языком.
Однако вы можете создать c#-2.0 файл исходного кода C#, полный c#-language классов и всего остального, запустить csharp его через поставщика CodeDom c#-2.0 для C#, скомпилировать его csharp в сборку, а затем выполнить.
Этот c#-language пост на форуме MSDN содержит c#-2.0 ответ с некоторым примером c#-2.0 кода ниже по странице:
create a anonymous method from a string?
Я .cs-file бы не сказал, что это очень property хорошее решение, но все же reflection возможно.
Какой код вы собираетесь properties ожидать в этой строке? Если c#.net это второстепенное подмножество property допустимого кода, например, просто c-sharp математические выражения, возможно, существуют reflection и другие альтернативы.
Редактировать: Что c#.net ж, это учит меня сначала c#-language внимательно читать вопросы. Да, отражение property могло бы помочь вам здесь.
Если c-sharp вы разделите строку на ; во-первых, чтобы visual-c# получить отдельные свойства, вы properties можете использовать следующий c# код, чтобы получить объект reflect PropertyInfo для определенного c# свойства для класса, а затем c-sharp использовать этот объект c#-2.0 для управления конкретным csharp объектом.
String propName = "Text";
PropertyInfo pi = someObject.GetType().GetProperty(propName);
pi.SetValue(someObject, "New Value", new Object[0]);
Ссылка: PropertyInfo.SetValue Method
c#
reflection
properties
c#-2.0
Как я могу динамически оценивать код C#?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.