Using #if and #define to specify an accessor
<p>For a cross platform library in C#, I wish to have a certain set of methods marked <em>protected</em> for extensibility purposes. These methods are later accessed by reflection, using meta-programming with attributes</p>

<p>However, on Windows Phone 7 accessing <em>protected</em> methods by reflection isn't allowed, and instead I wish for them to be marked internal.</p>

<p>So what I'm wondering, is if I could do something like this, in C#, or if there's a better workaround for it?</p>

<pre><code>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

#if WINDOWS_PHONE
    #define ACCESSOR internal
#else
    #define ACCESSOR protected
#endif

namespace Example
{
    public class MyTestClass
    {
        [MyAttribute]    
        ACCESSOR void MyMethod()
        {
        }
    }
}
</code></pre>
