小编Ant*_*ott的帖子

使用带有多个变量的语句

通过以某种方式在同一个使用块中声明2变量,是否可以使这个代码更紧凑?

using (var sr = new StringReader(content))
{
    using (var xtr = new XmlTextReader(sr))
    {
        obj = XmlSerializer.Deserialize(xtr) as TModel;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# using-statement

303
推荐指数
2
解决办法
9万
查看次数

以编程方式设置InstanceContextMode

有没有办法做到这一点 ...

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
Run Code Online (Sandbox Code Playgroud)

...编程?

原因是我想在集成测试我的服务时直接将我的服务实例传递给我的自托管助手类.

我正在使用Castle Windsor来创建我的所有对象,这在使用测试网站时工作正常.但是当我尝试使用我的HttpWebService帮助程序类时,我收到以下错误...

System.InvalidOperationException was unhandled by user code
  Message=In order to use one of the ServiceHost constructors that takes a service instance, the InstanceContextMode of the service must be set to InstanceContextMode.Single.  This can be configured via the ServiceBehaviorAttribute.  Otherwise, please consider using the ServiceHost constructors that take a Type argument.
  Source=System.ServiceModel
Run Code Online (Sandbox Code Playgroud)

这是我的助手类的构造函数......

public HttpWebService(string baseUri, string acceptType, TApi serviceInstance = null)
{
    _baseUri = baseUri;
    _acceptType = acceptType.ToLower();

    _host = serviceInstance == …
Run Code Online (Sandbox Code Playgroud)

wcf-web-api

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

我需要resx Designer.cs文件吗?

我公司使用一些数据库表,一个网页前端和一个"导出"应用程序的组合来处理我们网站中的字符串资源.

当我们使用VS2008时,导出应用程序曾经工作得很好,但是自从切换到VS2010后,资源现在在解决方案资源管理器中"下方"有一个designer.cs文件.

问题是"导出"应用程序只生成.resx文件而不生成底层的designer.cs文件.

那么,有没有办法不使用那些designer.cs文件,或者某种方式自动重新生成(甚至某些命令导出应用程序可以调用重新生成它们)

resx visual-studio-2010

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

强制jQuery ready块在所有其他就绪块之后运行

在所有其他人都这样做之后,是否可以执行一个jQuery ready块.

我在我的母版页中有这个...

<script type="text/javascript">
    $(document).ready(function()
    {
        $("input[type='text']:enabled:first", document.forms[0]).focus().select();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

这在我的其他页面之一......

<script type="text/javascript">
    $(document).ready(function()
    {
        $('textarea.message-body').wysiwyg();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我看到的问题是第一个块在第二个块之前执行,这导致tab键出现问题.发生的事情是,当我按Tab键时,键盘焦点会转到浏览器中的地址栏.我已经稍微更改了代码以在我的母版页中显示...

<script type="text/javascript">
    $(document).ready(function()
    {
        var bodies = $('textarea.message-body');
        if (bodies.length > 0)
        {
            bodies.wysiwyg();
        }

        $("input[type='text']:enabled:first", document.forms[0]).focus().select();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

并完全取消另一个准备好的块.这样做可以使Tab键正常工作,并将焦点设置到我的textarea上.

我宁愿在母版页中没有特定于页面的代码.

那么,有没有办法让我的文本框聚焦代码在wysiwyg代码之后运行?

jquery

13
推荐指数
3
解决办法
6250
查看次数

ASP.NET Web Api路由(IIS与自托管)

我发现ASP.NET Web Api中的路由基类有一些细微的差别,这迫使我编写一个小帮助类,这将允许我只定义一次路由.是否有一个原因?我假设对框架进行了太大的改动,以使得两者RouteCollection都来自相同的基类或实现相同的接口(这会使这个类更简单)

public static class RouteMapper
{
    private class Route
    {
        public string Name { get; set; }
        public string Template { get; set; }
        public object Defaults { get; set; }

        public Route(string name, string template, object defaults)
        {
            Name = name;
            Template = template;
            Defaults = defaults;
        }
    }

    private static List<Route> GetRoutes()
    {
        return new List<Route>
                   {
                       new Route(
                           "API Default",
                           "api/{controller}/{id}",
                           new {id = RouteParameter.Optional})
                   };
    }

    public static void AddHttpRoutes(this HttpRouteCollection routeCollection) …
Run Code Online (Sandbox Code Playgroud)

integration-testing asp.net-mvc-routing asp.net-web-api

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

没有mac的iPad开发

我有兴趣为我的新iPad开发一款纯粹供我自己使用的应用程序.(至少从一开始)

  • 有没有办法开发没有Mac的应用程序?
  • 我是否可以只在我自己的iPad上安装应用程序,而不必在我甚至不想这样做的时候注册发布它的权利?

编辑:

我可以使用旧的G3 powerbook进行开发吗?它们可以在ebay上非常便宜.该规范的某些内容是否适合运行xcode开发环境?

windows ipad

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

CQRS命名约定

我正在实施一个新的Web服务,虽然我还没有使用CQRS,但我希望创建我的服务,以便将来可以很容易地转移到CQRS.所以,我想知道我的DTO类的命名约定以及我的方法.

我已经阅读了关于DTO命名约定的博客文章,这对我来说似乎很明智.它建议以下......

  • SomeSortOfQueryResult
  • SomeSortOfQueryParameter
  • SomeSortOfCommand
  • SomeSortOfConfigItem
  • SomeSortOfSpecification
  • SomeSortOfRow
  • SomeSortOfItem(用于集合)
  • SomeSortOfEvent
  • SomeSortOfElement
  • SomeSortOfMessage

我在这里要问的是我应该如何命名我的方法.使用GetSomethingSomeQuery更好是好的做法吗?

naming-conventions cqrs

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

ASP.NET Web Api和UrlDecode

这是框架中的错误吗?

我必须在这里使用HttpUtility.UrlDecode.我认为事情是在MVC中自动解码的.

    public Thingy[] Get(string id)
    {
        var actualId = HttpUtility.UrlDecode(id ?? string.Empty);

        var result = MakeThingy(actualId );
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我应该能够做到这一点......

    public Thingy[] Get(string id)
    {
        var result = MakeThingy(id ?? string.Empty);
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

urldecode asp.net-mvc-4 asp.net-web-api

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

C#参数至少需要一个值

有没有更优雅的方法来确保构造函数始终被调用至少一个值,而不是我在这里得到的值?我这样做了,因为如果没有提供值,我想要编译器错误.

public class MyClass
{
    private readonly List<string> _things = new List<string>();
    public string[] Things { get { return _things.ToArray(); } }

    public MyClass(string thing, params string[] things)
    {
        _things.Add(thing);
        _things.AddRange(things);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

根据评论,我已将代码更改为此...

public class Hypermedia : Attribute
{
    private readonly Rel[] _relations;
    public IEnumerable<Rel> Relations { get { return _relations; } }

    public Hypermedia(Rel relation, params Rel[] relations)
    {
        var list = new List<Rel> {relation};
        list.AddRange(relations);
        _relations = list.ToArray();
    }
}
Run Code Online (Sandbox Code Playgroud)

在尝试隐藏我想要做的事情之前编辑代码的道歉.从我的代码编辑器直接粘贴更容易!

c# params

9
推荐指数
2
解决办法
2810
查看次数

Linq2SQL"本地序列不能在LINQ to SQL中使用"错误

我有一段代码,它将内存列表与数据库中保存的一些数据相结合.这在我的单元测试中运行得很好(使用使用List的模拟Linq2SqlRepository).

    public IRepository<OrderItem> orderItems { get; set; }

    private List<OrderHeld> _releasedOrders = null;
    private List<OrderHeld> releasedOrders
    {
        get
        {
            if (_releasedOrders == null)
            {
                _releasedOrders = new List<nOrderHeld>();
            }
            return _releasedOrders;
        }
    }

    .....

    public int GetReleasedCount(OrderItem orderItem)
    {
        int? total =
            (
                from item in orderItems.All
                join releasedOrder in releasedOrders
                    on item.OrderID equals releasedOrder.OrderID
                where item.ProductID == orderItem.ProductID
                select new
                {
                    item.Quantity,
                }

            ).Sum(x => (int?)x.Quantity);

        return total.HasValue ? total.Value : 0;
    }
Run Code Online (Sandbox Code Playgroud)

当我针对数据库运行它时,我收到的错误我真的不明白.

异常信息:
    异常类型:System.NotSupportedException
    异常消息:除Contains()运算符外,本地序列不能用于查询运算符的LINQ to SQL实现. …

linq linq-to-sql

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