0
我嘗試了以下方法但不起作用(ActivationException)。非通用接口的簡單噴油器裝飾器
public interface IOp { object Execute(object value); }
public class SimpleOp : IOp { public object Execute(object value) { return value; } }
public class CompressOp : IOp {
private readonly IOp nextOp;
public CompressOp(IOp nextOp) { this.nextOp = nextOp; }
public object Execute(object value)
{
return this.Compress(this.nextOp.Execute(value));
}
}
var container = new Container();
container.RegisterAll<IOp>(typeof(SimpleOp), typeof(CompressOp));
Container.RegisterDecorator(typeof(IOp), typeof(CompressOp));
var op = container.GetInstance<IOp>(); <-- ActivationException
IOp接口確實不需要是泛型類型,因爲它設計爲對任何對象執行相同的處理。我必須強制它是一個通用的,然後總是使用object
作爲類型參數,所以我可以使用裝飾器模式?
這簡單的噴油器的版本,您使用的和請更新您的問題,它的確切異常消息,最好的堆棧跟蹤。 – Steven