小编Rod*_*ley的帖子

为什么数据库总是用圆柱表示?

这个问题今天出现了,我找不到任何历史答案,为什么数据库总是表示为圆柱体.我希望堆栈世界中的某个人知道为什么并有一个链接或支持它的东西.

database diagram database-design diagramming database-diagramming

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

如何在应用程序中禁用iOS通知中心?

如果你有一个全屏iOS应用程序,并且你想阻止通知中心被拉下来,你可以和如何?

您还可以在加载应用时屏蔽通知提醒或横幅广告吗?(我认为这是绝对不可能的,但想要以防万一.)

notifications objective-c ios5

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

在32位和64位C#世界中使用System.Data.SQLite的选项

我理解为什么在32位和64位版本中提供System.Data.SQLite.dll.所以我们不要再纠缠于此并继续前进.:)

由于它以这种方式完成,它似乎使得纯粹的C#开发变得更加困难,有3个选择.

  1. 是仅支持32位并强制使用托管程序集来编译x86并在32或64位运行时处理它,并且当你在64位环境中时会失去优势.

  2. 是强制64位并且仅支持64位并且失去了在32位上运行的能力但是获得了64位的所有优点.

  3. 是创建两个版本的程序集,一个编译x86并使用32位SQLite,另一个编译x64并使用64位SQLite.它阻止使用"ANY"作为编译选项,并且能够轻松地将单个构建部署到任一类型.从开发的角度来管理并不是那么可怕,因为我们需要两个项目.只将C#代码正式放在一个,而另一个只使用"链接"到另一个代码.这仅用于编译目的.仍然让我们必须管理两个输出以进行部署.

尽管如此,我只是在寻找确认以上是唯一正确的选择.

如果我还有其他选择,请告诉我.具体来说,如果有方法可以获得一个可以编译为ANY的单个C#DLL,那么它可以利用32位或64位,具体取决于它的运行位置并仍然使用System.Data.SQLite.dll.

.net c# sqlite 32bit-64bit

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

有没有办法将任务并行库(TPL)与SQLDataReader一起使用?

我喜欢TPL中Parallel.For和Parallel.ForEach扩展方法的简单性.我想知道是否有办法利用类似的东西,甚至是稍微高级的任务.

下面是SqlDataReader的典型用法,我想知道是否可能,如果是这样,如何用TPL中的东西替换下面的while循环.因为读者不能提供固定数量的迭代,所以不能使用For扩展方法,这样就可以处理我将收集的任务.我希望有人可能已经解决了这个问题,然后找出了一些与ADO.net不同的事情.

using (SqlConnection conn = new SqlConnection("myConnString"))
using (SqlCommand comm = new SqlCommand("myQuery", conn))
{
    conn.Open();

    SqlDataReader reader = comm.ExecuteReader();

    if (reader.HasRows)
    {
        while (reader.Read())
        {
            // Do something with Reader
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# ado.net .net-4.0 task-parallel-library

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

你怎么能在C#中蚕食(nybble)字节?

我想学习如何使用C#从一个字节中获取两个半字节(高和低)以及如何将两个半字节组装回一个字节.

我正在使用C#和.Net 4.0,如果这有助于可以使用哪些方法以及可以使用哪些库.

.net c# byte

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

从未经授权的呼叫者处安全C#程序集

有没有办法将您的程序集保护到类/属性和类/方法级别,以防止从另一个未由我们公司签名的程序集中使用/调用它们?

我想这样做,没有强烈命名的任何要求(如使用StrongNameIdentityPermission)并坚持如何签署程序集.我真的不想使用InternalsVisibleTo属性,因为在不断变化的软件生态系统中无法维护.

例如:

情景一

Foo.dll由我的公司签名,Bar.dll根本没有签名.

Foo的A级酒吧有B级

A类有公共方法GetSomething()B类试图调用Foo.A.GetSomething()并被拒绝

被拒绝可能是一个例外,或者在某种程度上被忽略

情景二

Foo.dll由我公司签名,Moo.dll也由我公司签名.

Foo有A级Moo有C级

A类有公共方法GetSomething()C类试图调用Foo.A.GetSomething()并且不被拒绝

c# security assemblies

18
推荐指数
2
解决办法
7222
查看次数

是否有关于TFS Web服务的文档?

我正在寻找有关Microsoft TFS Web服务的任何信息.首先,我知道不支持直接访问Microsoft TFS Web服务,Microsoft没有提供执行此操作的文档.因此,我不期待任何Microsoft支持或帮助.

我知道可用于TFS的.Net API,它只适用于Microsoft操作系统.我在Windows上使用了很多次,但是我需要非Windows工作来访问TFS,我不能使用.Net而且我不能使用代理(或"shim")安装在Windows计算机上来提供Web服务用于.Net API.

我知道Teamprise逆向设计了Web服务,他们成功地利用这些知识在Java中创建了一个非常好的跨平台Team Explorer和命令行实现来访问TFS.事实上,它们很好地被微软收购,产品重新命名并重新发布为Microsoft Visual Studio Team Explorer Everywhere.

我还在几个非Windows平台上针对Mono测试了.Net API,但它们不兼容.初始NTLMv2身份验证使用Mono不支持的调用.他们似乎可以理解为Win32特定调用NTLMv2支持.

因此,在我为自己进行逆向工程的麻烦之前,以及处理NTLMv2来做到这一点.我希望网上有一些隐藏或隐藏的信息,有人可能已经记录了2005年,2008年和/或2010年TFS的部分网络服务.

请不要评论或发布有关Microsoft不推荐或支持的方法,我应该找到一种方法来使用.Net API,或者建议Proxy/Shim是最好的解决方案.我完全了解微软对此的官方立场,以及支持的解决方案.

tfs web-services

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

Mac OS X Lion:最大路径长度是多少?

我无法找到这些信息,而且反复试验告诉我价值非常高.所以我想我要求社区看看是否有人知道并且可以指向一个确认Lion长度的苹果页面.我所知道的是雪豹更大.

filesystems macos path osx-lion

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

在C#中的循环中使用lock语句

让我们尝试使用示例类SomeThread,我们试图阻止在Running属性设置为false之后调用DoSomething方法,并且由OtherThread类调用Dispose,因为如果在Dispose方法之后调用它们,则世界将以我们结束知道.

感觉因为循环,有可能发生邪恶的事情.在调用DoSomething方法之前,在启动下一个循环和锁定之前,可以将Running更改为false,并在它到达锁定之前调用Disposed.在这种情况下,生活不会很好.

当我在一个简单易于维护的方法中使用循环时,我正在研究如何处理这个问题.为了记录,我确实考虑过Double Lock Check图案,但它似乎并不适合C#.

警告:这是一个简化的示例,试图让您更容易关注循环和锁定问题.如果我没有详细说明某些地方请告诉我,我会尽力填写任何细节.

public class SomeThread : IDisposable
{
    private object locker = new object();
    private bool running = false;

    public bool Running 
    { 
        get
        {
            lock(locker)
            {
                return running;
            }
        }
        set
        {
            lock(locker)
            {
                running = value;
            }
        }
    }

    public void Run()
    {
        while (Running)
        {
            lock(locker)
            {
                DoSomething1();
                DoSomething2();
            }
        }
    }

    private void DoSomething1()
    {
        // something awesome happens here
    }

    private void DoSomething2()
    {
        // something more awesome happens here …
Run Code Online (Sandbox Code Playgroud)

c# multithreading loops locking

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

有什么理由不使用null-coalescing运算符进行延迟初始化?

问候我今天正在做一些懒惰的初始化代码,并且想到为什么不使用null-coalescing运算符来执行此操作,它更短,但后来我认为这样做有任何开销或额外成本.

下面是简化的示例代码,显示了一个用于延迟初始化的更常见的表单,然后是一个使用null-coalescing运算符的表单.它们具有完全相同的结果,并且看起来相同.我的第一个想法是,在创建对象之后,现在可以使用它自己进行额外的赋值??.这是一个非问题,编译器/ JIT优化了一些如何,是否有一些更邪恶的事情,你应该永远不要做懒惰的初始化??,或者它是完全安全的,没有坏mojo可以来自它.

private MyLazyObject _lazyObject;

public MyLazyObject GetMyLazyObjectUsingMoreCommonMethod()
{
    if (_lazyObject != null)
        return _lazyObject;

    _lazyObject = new MyLazyObject();

    return _lazyObject;
}

public MyLazyObject GetMyLazyObjectUsingNullCoalescingOpMethod()
{
    _lazyObject = _lazyObject ?? new MyLazyObject();
    return _lazyObject;
}
Run Code Online (Sandbox Code Playgroud)

c# null-coalescing-operator lazy-initialization

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