2016-04-23 50 views
0

更容易访问。从下面的代码中,我一直参考私有IOrderProcessor orderProcessor;来解决此错误不一致的可访问性问题。我已经将私人更改为公开,但错误仍然存​​在。有人可以帮我吗?不一致的可访问性:字段类型'FashionWorldApp.Domain.Abstract.IOrderProcessor'比字段'

namespace FashionWorldApp.WebUI.Controllers 
{ 
public class CartController : Controller { 
    private IProductRepository repository; 
    private IOrderProcessor orderProcessor; 

    public CartController(IProductRepository repo, IOrderProcessor proc) 
    { 
     repository = repo; 
     orderProcessor = proc; 
    } 

    public ViewResult Index(Cart cart, string returnUrl) 
    { 
     return View(new CartIndexViewModel 
     { 
      Cart = cart, 
      ReturnUrl = returnUrl 
     }); 
    } 

    public PartialViewResult Summary(Cart cart) 
    { 
     return PartialView(cart); 
    } 

    [HttpPost] 
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) 
    { 
     if (cart.Lines.Count() == 0) 
     { 
      ModelState.AddModelError("", "Sorry, your cart is empty!"); 
     } 

     if (ModelState.IsValid) 
     { 
      orderProcessor.ProcessOrder(cart, shippingDetails); 
      cart.Clear(); 
      return View("Completed"); 
     } 
     else 
     { 
      return View(shippingDetails); 
     } 
    } 

    public ViewResult Checkout() 
    { 
     return View(new ShippingDetails()); 
    } 
    public RedirectToRouteResult AddToCart 
      (Cart cart, int productId, string returnUrl) 
    { 
     Product product = repository.Products 
      .FirstOrDefault(p => p.ProductID == productId); 

     if (product != null) 
     { 
      cart.AddItem(product, 1); 
     } 
     return RedirectToAction("Index", new { returnUrl }); 
    } 

public RedirectToRouteResult RemoveFromCart 
     (Cart cart, int productId, string returnUrl) 
    { 
     Product product = repository.Products 
      .FirstOrDefault(p => p.ProductID == productId); 

     if (product != null) 
     { 
      cart.RemoveLine(product); 
     } 
     return RedirectToAction("Index", new { returnUrl }); 
    } 
} 
} 
+0

你可以发布你的IOrderProcessor的定义。我的直觉是它不是一个公共接口。还有什么是完整的错误? – Arijoon

回答

0

将IProductRepository接口更改为public。你有一个接受IProductRepository作为参数的公共构造函数,你需要保证外部调用可以看到它。

+0

谢谢各位回复。它已被处理。 –

+0

但是,仍然有人可以帮助您创建一个目录来存储应用程序中的电子邮件文件 –