title: .NET Reflection - How to get "real" type from out ParameterInfo
body: <p>I'm trying to validate that a parameter is both an out parameter and extends an interface (ICollection). The reflection api doesn't seem to want to give me the "real" type of the parameter, only the one with an "&amp;" at the end which will not evaluate correctly in an IsAssignableFrom statement. I've written some c# code that works but it seems like there should be a better way to do this.</p>
  
  <pre><code>bool isCachedArg(ParameterInfo pInfo)
  {    
      if (!pInfo.IsOut)
          return false;
  
      string typeName = pInfo.ParameterType.FullName;
      string nameNoAmpersand = typeName.Substring(0, typeName.Length - 1);
      Type realType = Type.GetType(nameNoAmpersand);
  
      if (!typeof(ICollection).IsAssignableFrom(realType))
          return false;
  
      return true;
  }
  </code></pre>
  
  <p>Is there a way to get realType without reloading the Type from its string name? I'm still on .NET 2.1.</p>
  
  <p>Thanks,
  Randy</p>