public object Create()
{
lock (_cachingILBuilder.Lock)
{
var item = new CacheItem(_name, _delegate, _ilGen);
item = (CacheItem)_cachingILBuilder.FindInCache(item);
if (item.Object == null)
{
var method = _cachingILBuilder.Wrapping.NewMethod(_name, _delegate);
if (_expectedLength != -1) method.ExpectedLength(_expectedLength);
_ilGen.ReplayTo(method.Generator);
_ilGen.FreeTemps();
item.Object = method.Create();
}
return item.Object;
}
}