小编use*_*975的帖子

返回WCF自定义错误异常

我在从wcf服务返回自定义错误异常时遇到了一些麻烦.与wcf服务通信的客户端应用程序获取 - 合同不匹配错误.这是我在服务中定义的错误合同:

public partial class Fault
{
    string codeField;
    string messageField;
    string detailsField;
}
Run Code Online (Sandbox Code Playgroud)

在服务错误时,我创建自定义错误异常如下:

public void ProvideFault(Exception exception, MessageVersion version, ref Message       refMessage)
{
      mynamespace.Fault customFault = new mynamespace.Fault()
      {
           code = "Service Error",
           message = "Error Message",
           details = "Error Message"
      };

      FaultException<mynamespace.Fault> faultexception = new   FaultException<mynamespace.Fault>( customFault );

      MessageFault messageFault = faultexception.CreateMessageFault();

      refMessage = Message.CreateMessage( version, messageFault, faultNamespace );
}
Run Code Online (Sandbox Code Playgroud)

此代码导致客户端中的合同不匹配错误.任何人都可以帮我找到错误吗?

wcf

7
推荐指数
1
解决办法
1万
查看次数

在MVC控制器中具有存储库引用

我正在使用MVC,Nhibernate和IOC容器进行企业应用程序.

我三层:

DAL - Nhibernate数据存储库

public class CustomerRepository : Repository<int>,ICustomerRepository
{
    public CustomerRepository(IUnitOfWork unitOfWork)
        : base(unitOfWork)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

BLL - 业务层

public class CustomerManager
{
    private readonly ICustomerRepository _repository;
    public CustomerManager(ICustomerRepository repository)
    {
        _repository = repository;
    }
    public IList<Customer> GetAll()
    {
        return _repository.GetAll<Customer>();
    }
}
Run Code Online (Sandbox Code Playgroud)

演示 - MVC控制器

private readonly IUnitOfWork _unitOfWork;
private readonly ICustomerRepository _repository;
private readonly CustomerManager _manager;

public HomeController(IUnitOfWork unitOfWork, ICustomerRepository repository)
    {
        _unitOfWork = unitOfWork;
        _repository = repository;
        _manager = new CustomerManager(_repository);
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用IOC容器来注册工作单元和CustomerRepository对象.国际奥委会集装箱工作正常.

关于这个解决方案的问题是我在控制器中有CustomerRepository引用.这种架构是好还是有更好的方法来实现它?

architecture nhibernate model-view-controller asp.net-mvc design-patterns

3
推荐指数
1
解决办法
623
查看次数

从WCF消息中获取正文

我在从wcf消息中检索正文时遇到了一些麻烦.我正在尝试实现WCF消息检查器来验证针对XSD架构的消息.

肥皂体如下:

<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Header xmlns="http://www.test1.com">
      <applicationID>1234</applicationID>
    </Header>
    <GetMatchRequest xmlns="http://www.tempuri.org">test</GetMatchRequest>
  </s:Body>
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试获取身体时,它只会得到部分身体信息.获取只有header元素,忽略GetMatchRequest元素(可能是因为多个名称空间...)

我使用以下来获取邮件正文:

XmlDocument bodyDoc = new XmlDocument();
bodyDoc.Load( message.GetReaderAtBodyContents().ReadSubtree());
Run Code Online (Sandbox Code Playgroud)

我也试过以下:

bodyDoc.Load( message.GetReaderAtBodyContents());
Run Code Online (Sandbox Code Playgroud)

上面的代码导致错误 - 该文档已经有一个'DocumentElement'节点.

任何人都可以帮助从WCF消息中提取身体吗?

谢谢

wcf

1
推荐指数
1
解决办法
6143
查看次数