10
我需要下面的调用有可能在同便携式类库中:便携式类库与异步等待和的GetType()IsValueType
public class Foobar
{
void Foo()
{
var b = GetType().IsValueType; //<-- 2
}
async Task<IEnumerable<T>> Bar<T>()
where T : class, IBaz, new()
{
return await Task.Factory.StartNew(() => new List<T>(new[] //<-- 1
{
new T {Qux = Guid.NewGuid().ToString()}
}));
}
interface IBaz
{
string Qux { get; set; }
}
}
随着设置以下的目标框架:
- 。 .NET框架4.5
- 的Sliverlight 5级
- 的Windows Phone 8
- 。网络的Windows Store应用程序
我得到这个生成错误:
无法找到由“异步”修改所需的所有类型。你是针对错误的框架版本,还是缺少对程序集的引用?
我试图安装bcl但仍然得到相同的错误。 如果我删除Sliverlight目标的异步工作,但然后我失去了Type类的IsValueType道具...
我没有看到任何理由,该方法是'async'。只要删除'async','await',就完成了。除此之外,我甚至不明白为什么这个操作需要在线程池线程中发生;生成一个单一的GUID是一个*非常*快速的操作。开始线程池线程会让你失去更多的时间。 – Servy 2013-03-06 18:40:11
该示例纯粹是为了重新编译编译错误,并不能说明解决方案的结构。 – jaimie 2013-03-06 23:54:13