小编Tim*_*Tim的帖子

推荐的ServiceStack API结构

我正在尝试找出构建API的最佳方法; 我们在标准REST结构中设置了评论(列表一,列出所有,创建,更新等).在不完全符合示例的情况下:每个评论可以链接到一个或多个其他类型,例如事件,位置或事物.

我的想法是网址将是:/ event/reviews /(或相反的例如/ reviews/event /)/ location/reviews// thing/reviews /

然而,我可以看到的问题是每个这样的"GET"应该返回父对象,即一个事件.

那么使用ServiceStack,处理这种情况的最佳方法是什么?是为每个数据请求创建一个自定义服务而不是滥用开箱即用的REST设置还是我错过了一些更基本的东西?

c# api servicestack

66
推荐指数
2
解决办法
4万
查看次数

在集合类型上使用支撑初始化程序是否设置了初始容量?

在集合类型上使用支撑初始化程序是否设置了它的容量,或者您是否仍需要指定它?

那就是:

var list = new List<string>(){ "One", "Two" };
Run Code Online (Sandbox Code Playgroud)

结果与此相同:

var list = new List<string>(2){ "One", "Two" };
Run Code Online (Sandbox Code Playgroud)

c# collections

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

如何在MemoryCache上分离对象引用

我正在尝试MemoryCache使用.Net 4中的新功能来缓存我们的一个应用程序中的一些数据.我遇到的麻烦是对象被更新,缓存似乎是持久的变化,例如

public IEnumerable<SomeObject> GetFromDatabase(){
    const string _cacheKeyGetDisplayTree = "SomeKey"; 
    ObjectCache _cache = MemoryCache.Default;
    var objectInCache = _cache.Get(_cacheKeyGetDisplayTree) as IEnumerable<SomeObject>;
    if (objectInCache != null)
        return objectInCache.ToList();

    // Do something to get the items
    _cache.Add(_cacheKeyGetDisplayTree, categories, new DateTimeOffset(DateTime.UtcNow.AddHours(1)));

    return categories.ToList();
}

public IEnumerable<SomeObject> GetWithIndentation(){
    var categories = GetFromDatabase();

    foreach (var c in categories)
    {
        c.Name = "-" + c.Name;
    }

    return categories;
}
Run Code Online (Sandbox Code Playgroud)

如果我GetWithIndentation()先调用然后再调用GetFromDatabase()我希望它返回原始列表,SomeObject但它会返回修改后的项目(名称上带有" - "前缀).

我以为ToList()破坏了参考,但似乎仍然存在变化.我敢肯定这很明显,但是有人能发现我哪里出错吗?

c# memorycache

13
推荐指数
2
解决办法
4126
查看次数

解决大型RewriteMap配置部分

有人知道你可以将一个大的(550KB)重写文件拆分成更小的部分吗?

我们遇到的问题是旧网站有数千个需要映射的网址,但由于250KB的限制我们无法映射它们.

我正在考虑以下方面的事情:

<rewrite>
    <rewriteMaps>
        <rewriteMap configSource="config\RewriteMaps.LargePart1.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePart2.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePart3.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePartX.config" />
    </rewriteMaps>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

但问题是,rewriteMap节点不是部分,所以不能使用configSource.有没有人想出一个优雅的解决方案呢?

xml asp.net web-config

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

使用什么是组合Autofac和Dapper的首选方式

我们一直使用EF作为当前应用程序中大多数数据访问的主干,我们正在逐渐远离它,以获得更多服务器密集型查询,并将其替换为Dapper.

考虑到这一点,实现与Autofac连接的首选方法是什么?是注入IDBConnection还是连接字符串?IDBConnection对我来说感觉更好,但是如果你使用"使用"它会被处理掉,后来的电话无法访问.

c# ioc-container inversion-of-control autofac dapper

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