小编Ami*_*Ami的帖子

WCF服务合同可以有一个可以为空的输入参数吗?

我的合同定义如下:

[OperationContract]
[WebGet(UriTemplate = "/GetX?myStr={myStr}&myX={myX}", BodyStyle = WebMessageBodyStyle.Wrapped)]
string GetX(string myStr, int? myX);
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:[InvalidOperationException:合同'IMyGet'中的'GetX'操作有一个名为'myX'的类型为'System.Nullable 1[System.Int32]', but type 'System.Nullable1 [System.Int32]' 的查询变量'不能被'QueryStringConverter'转换.UriTemplate查询值的变量必须具有可由"QueryStringConverter"转换的类型.

找不到任何有关此错误的信息,除了以下链接:http: //blog.rolpdog.com/2007/07/webget-and-webinvoke-rock.html有点旧,而不是解决方案.

任何想法除了摆脱可以为空的参数做什么?

谢谢.

c# rest wcf nullable

12
推荐指数
3
解决办法
2万
查看次数

Unity [依赖]注入和继承

我的问题如下:我有一个名为ApplicationController的基本控制器(ASP.Net MVC控制器),我希望我的所有控制器都从它继承.此基本控制器具有ILogger属性,标记为[Dependency]属性.(是的,我知道我应该使用构造函数注入,我只是对这个属性感到好奇).

我创建了容器,注册类型,更改了默认工厂,一切都很好.问题是当我尝试在派生控制器中使用我的Logger属性时,它没有得到解决.

我究竟做错了什么?为什么容器在创建派生控制器时不解析基类依赖项?

代码示例:


ApplicationController中:

public class ApplicationController : Controller
{
    [Dependency]
    protected ILogger _logger { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

派生控制器:

public class HomeController : ApplicationController
{
    public HomeController()
    {

    }
    public ActionResult Index()
    {
        _logger.Log("Home controller constructor started.");
        ViewData["Message"] = "Welcome to ASP.NET MVC!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

Unity控制器工厂:

public class UnityControllerFactory : DefaultControllerFactory
{
    private readonly IUnityContainer _container;
    public UnityControllerFactory(IUnityContainer container)
    {
        _container = container;
    }

    protected override IController GetControllerInstance(Type …
Run Code Online (Sandbox Code Playgroud)

c# inheritance dependency-injection unity-container

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

url使用visual studio 2012重写

我正在尝试在VS 2012上使用带有MVC应用程序的url重写模块.我已经使用web平台4.0安装了模块,遵循Ruslan的博客文章,根据评论更新了他的js脚本(特别是Brant Burnett的最后一个) 10月19日,脚本执行成功.我检查了DotNetConfig.xsd,一切看起来都很好.

如果我打开IIS管理控制台,我会看到Url Rewrite模块,一切正常.

我创建一个简单的MVC解决方案(使用默认的主/帐户控制),当我添加了简单的ToLowerCase规则(也鲁斯兰的博客复制),我得到的标签和HTTP 500.19下的蓝色波浪线,如果我尝试执行.重启等等没有帮助.另外重要提一下我使用的是IIS Express 7.5.

在运行VS 2010的机器上,同样的程序对我很有用,url重写工作没有问题.

谁知道什么可能出错?进一步分析需要哪些信息?为什么intellisense工作和重写模块不被认可?

url-rewrite-module visual-studio-2012

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