<p>I am currently developing an approval routing WCF service that will allow an user to create "rules" which determine how an request is routed.  The route is determined by comparing the "ObjectToEvaluate" property of the Request class against the "ObjectToEvaluate" property of the "Rule" class.  The "UnitOfMeasurement" enum determines how to cast the "ObjectToEvaluate" property for each class.  </p>

<pre><code>public enum UnitOfMeasurement
{
    Currency = 1,
    Numeric = 2,
    Special = 3,
    Text = 4,
}

public class Request
{
    public object ObjectToEvaluate { get; set; }
}

public class Rule
{
    public object ObjectToEvaluate { get; set; }

    public virtual void ExecuteRule()
    {
        //logic to see if it passes the rule condition
    }
}
</code></pre>

<p>What would be the best way to implement the method to cast the "ObjectToEvaluate" property using the "UnitOfMeasurement" enum?</p>

Where are you getting the unit of measurement from? I can see the enum, but I don't see any reference to it elsewhere in the API.
Assuming you do get it from somewhere, the easiest solution may well be a switch statement. It's a bit ugly, but:
It'll work
It's easy to understand
It'll be fast
I'm still not entirely convinced I understand everything about the question though - particularly as you haven't explained what the other objects will be used for after casting.