C # преобразовать строку для использования в логическом условии

Можно ли преобразовать строку в оператор для использования в логическом условии.

Например

if(x Convert.ToOperator(">") y) {}

или же

if(x ">" as Operator y){}

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

заранее спасибо

РЕДАКТИРОВАТЬ: ОК, я согласен, только справедливо, чтобы дать некоторый контекст.

У нас есть система, построенная вокруг отражения и XML. Я хотел бы иметь возможность сказать что-то вроде, для простоты.

<Value = "Object1.Value" Operator = ">" Condition = "0"/>

РЕДАКТИРОВАТЬ: Спасибо за ваши комментарии, я не могу правильно объяснить это здесь. Я предполагаю, что на мой вопрос отвечает «Вы не можете», что совершенно нормально (и то, что я думал). Спасибо за ваши комментарии.

РЕДАКТИРОВАТЬ: Черт возьми, я собираюсь пойти.

Представьте себе следующее

<Namespace.LogicRule Value= "Object1.Value" Operator=">" Condition="0">  

Это будет отражено в классе, так что теперь я хочу проверить условие, вызвав

bool LogicRule.Test()

Это та часть, где все это должно было бы собраться вместе.

РЕДАКТИРОВАТЬ:

Хорошо, поэтому, никогда не глядя на Lambdas или Expressions, я думал, что посмотрю на предложения @ jrista.

Моя система позволяет анализировать Enums, поэтому выражения являются привлекательными из-за Enum ExpressionType.

Поэтому я создал следующий класс для проверки идеи:

    public class Operation
    {
        private object _Right;
        private object _Left;
        private ExpressionType _ExpressionType;
        private string _Type;

        public object Left
        {
            get { return _Left; }
            set { _Left = value; }
        }

        public object Right
        {
            get { return _Right; }
            set { _Right = value; }
        }

        public string Type
        {
            get { return _Type; }
            set { _Type = value; }
        }

        public ExpressionType ExpressionType
        {
            get { return _ExpressionType; }
            set { _ExpressionType = value; }
        }

        public bool Evaluate()
        {
            var param = Expression.Parameter(typeof(int), "left");
            var param2 = Expression.Parameter(typeof(int), "right");

            Expression<Func<int, int, bool>> expression = Expression.Lambda<Func<int, int, bool>>(
               Expression.MakeBinary(ExpressionType, param, param2), param, param2);

            Func<int, int, bool> del = expression.Compile();

            return del(Convert.ToInt32(Left), Convert.ToInt32(Right));

        }
    }

Очевидно, что сейчас это будет работать только для Int32 и базовых ExpressionTypes, я не уверен, что смогу сделать его универсальным? Я никогда не использовал выражения раньше, однако, похоже, это работает.

Этот способ может быть объявлен в нашем XML-виде как

Operation<Left="1" Right="2" ExpressionType="LessThan" Type="System.Int32"/>

Ответы на вопрос(8)

Ваш ответ на вопрос