【发布时间】:2009-04-10 17:19:53
【问题描述】:
我正在尝试验证一个参数既是输出参数又是接口扩展(ICollection)。反射 api 似乎不想给我参数的“真实”类型,只有最后一个带有“&”的参数,它不会在 IsAssignableFrom 语句中正确评估。我已经编写了一些有效的 c# 代码,但似乎应该有更好的方法来做到这一点。
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;
}
有没有办法在不从字符串名称重新加载 Type 的情况下获取 realType?我仍在使用 .NET 2.1。
谢谢, 兰迪
【问题讨论】:
标签: c# .net reflection