1
공개적으로 노출되고 샌드 박스가있는 API가 있습니다. ResourceFactory에 일부 코드를 작성 했으므로 api.sandbox.whatever/무엇이든지 작동하며 인수에서 sandbox = true가 작동하지만 거대한 핵 심처럼 느껴집니다. 더 좋은 방법이 있을까요? 진정한 샌드 박스해야하는데 경우Wcf 웹 API 샌드 박스 끝점 처리
public class NinjectResourceFactory : IResourceFactory
{
private readonly IKernel _productionKernel;
private readonly IKernel _sandboxKernel;
public NinjectResourceFactory()
{
_productionKernel = new StandardKernel(new QueryMasterModule());
_sandboxKernel = new StandardKernel(new QueryMasterModule(true));
}
public object GetInstance(Type serviceType, InstanceContext instanceContext, HttpRequestMessage request)
{
string uri = request.RequestUri.ToString();
if (uri.Contains(".sandbox."))
{
return _sandboxKernel.Get(serviceType);
}
else if (uri.Contains("sandbox=true"))
{
request.RequestUri = new Uri(uri.Replace("sandbox=true", ""));
return _sandboxKernel.Get(serviceType);
}
else
{
return _productionKernel.Get(serviceType);
}
}
public void ReleaseInstance(InstanceContext instanceContext, object service)
{
// todo do I need to implement this?
}
}