小编Cyl*_*ric的帖子

确定程序集目录时NUnit出现问题

我刚刚开始使用NUnit来为我的项目提供一些测试覆盖.

在我的主library.dll中,我需要从库,library.xml的外部文件中加载配置数据.

这在我使用库时工作正常,因为我使用以下内容来获取查找配置文件的目录:

string settingspath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
Run Code Online (Sandbox Code Playgroud)

我注意到的问题是,当我使用NUnit进行单元测试时,它会将我的程序集复制到Shadow Copy,但不会带任何其他文件,所以当然我的init由于缺少配置文件而失败.

我应该做些不同的事情来从我的库中找到配置文件吗?(这是一个服务器应用程序,我不想使用标准的应用程序设置,或用户的本地设置等)

.net nunit

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

比较CodeIgniter与Yii的基准测试

我正在寻找PHP中最快的框架.

我找到了一个基准,其中Yii比CodeIgniter快,另一个基准,其中CodeIgniter比Yii快.

那么哪个更快?

php benchmarking codeigniter yii

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

C#MySQL连接池限制,并清理连接

我有一个简单的DB管理器类(一个比它的能力更值得的名字):

class DbManager
{
    private MySqlConnectionStringBuilder _connectionString;

    public DbManager()
    {
        _connectionString = new MySqlConnectionStringBuilder();
        _connectionString.UserID = Properties.Database.Default.Username;
        _connectionString.Password = Properties.Database.Default.Password;
        _connectionString.Server = Properties.Database.Default.Server;
        _connectionString.Database = Properties.Database.Default.Schema;
        _connectionString.MaximumPoolSize = 5;
    }


    public MySqlConnection GetConnection()
    {
        MySqlConnection con = new MySqlConnection(_connectionString.GetConnectionString(true));
        con.Open();
        return con;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我在其他地方有另一个类来表示其中一个表中的记录,我填充它如下:

class Contact
{
    private void Populate(object contactID)
    {
        using (OleDbConnection con = DbManager.GetConnection())
        {
            string q = "SELECT FirstName, LastName FROM Contacts WHERE ContactID = ?";

            using (OleDbCommand cmd = new OleDbCommand(q, con))
            {
                cmd.Parameters.AddWithValue("?", …
Run Code Online (Sandbox Code Playgroud)

c# mysql

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

什么是LINQ相当于SUM(当X = Y那么1 ELSE 0 END时)?

不确定这只是一个坏习惯,还是一种有效的做事方式,但对于跨越一堆表的大型复杂报表查询,我经常通过汇总一个Case语句得到我的汇总统计数据.

例如:

SELECT Contact.Name,
    SUM(CASE WHEN Order.Type = 'Special' THEN 1 ELSE 0 END) AS SpecialOrders,
    SUM(CASE WHEN Order.Type = 'Magic' THEN 1 ELSE 0 END) AS MagicOrders,
FROM Contact
LEFT JOIN Order ON (Contact.ContactID = Order.ContactID)
Run Code Online (Sandbox Code Playgroud)

我将如何在LINQ to SQL中执行此操作?(在vb.net中,但我猜任何.Net示例都可以)

Dim Orders = _
    From Order In DB.Orders
    Select New With {.Name = Contact.Name, 
                     .Special = If(Order.Type = "Special", 1, 0),
                     .Magical = If(Order.Type = "Magical ", 1, 0)}
Run Code Online (Sandbox Code Playgroud)

我需要总结.Special.Magical价值观.

(实际上,查询跨越了几个由事件预订信息组成的表,并且是否对记录进行求和的决定取决于其中几个字段中的字段)

vb.net linq-to-sql

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

在 CakePHP 2.3 中使用 OAuth 进行身份验证

我有一个 CakePHP 应用程序,我希望我的用户能够使用 OAuth 登录。

我似乎让 OAuth 对话正常工作,因为我正在从它的末尾获取用户信息,并且可以将令牌保存到我的users表中。

我的问题可能很愚蠢,但我正在努力解决何时需要使用我获得的令牌。我是否应该将用户的 ID 存储在 cookie 中,并且每当他们“回到”我的网站时,从数据库中获取他们的令牌并让我们重新检查他们的详细信息?

我没有为使用 OAuth 的用户获得任何类型的密码,所以我应该为这些人绕过 Auth,还是使用其中一个令牌作为 CakePHP 的密码?


以下是我的 UsersController 的 login 和 oauth2callback 部分:

<?php
class UsersController extends AppController {

    public function login() {
        if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                $this->redirect($this->Auth->redirect());
            } else {
                $this->Session->setFlash(__('Invalid username or password'));
            }
        } else {
            $client = $this->getGoogleClient();
            $authUrl = $client->createAuthUrl();
            $this->set(array('GoogleAuthUrl' => $authUrl));
        }
    }

    public function oauth2callback() {
        $client = $this->getGoogleClient();

        if (isset($this->request->query['code'])) {
            $client->authenticate($this->request->query['code']);
            $this->Session->write('token', $client->getAccessToken()); …
Run Code Online (Sandbox Code Playgroud)

cakephp oauth-2.0 cakephp-2.3

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

自定义方案似乎没有在应用程序意图中启动

我正在尝试创建一个需要使用OAuth进行身份验证的Android应用(使用Google Wave数据API)

我在我的指定了一个自定义方案,AndroidManifest.xml以便任何以"braindump://"开头的网址的视图应该转到我的应用:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.enigmagen.braindump"
    android:versionName="0.1"
    android:versionCode="1">

    <uses-sdk android:minSdkVersion="7"></uses-sdk>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:debuggable="true">

        <activity
            android:name=".BrainDump"
            android:label="@string/app_name"
            android:launchMode="singleInstance">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="braindump" />
            </intent-filter>

        </activity>

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

所有这一切都发生在重定向之后,浏览器地址显示正确的URL,但页面内容是

您无权打开此页面.题库:// rest_of_address_here

是否需要设置特定权限才能允许此类行为?

android oauth

4
推荐指数
3
解决办法
4137
查看次数

SqlCommand超时,即使在SQL Studio中,相同的查询速度很快

我有一个简单的查询,可以从我的小日志处理应用程序中执行。该方法的目的是简单地从日志表中获取最高的日期值:

private DateTime GetLastEntryDate(string serverName, string siteName)
{
    DateTime dt = DateTime.MinValue;
    using (var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["LogParserDB"].ConnectionString))
    {
        con.Open();
        using (var cmd = new SqlCommand("SELECT MAX(date) FROM iislogs WHERE host=@Host AND site=@Site", con))
        {
            cmd.CommandTimeout = 120;
            cmd.Parameters.AddWithValue("Host", serverName);
            cmd.Parameters.AddWithValue("Site", siteName);
            var result = cmd.ExecuteScalar();
            if (result != DBNull.Value)
            {
                dt = (DateTime)result;
            }
        }
    }
    return dt;
}
Run Code Online (Sandbox Code Playgroud)

表上有一些索引,但是我不确定这是否相关,因为我遇到的问题是,当我运行这段代码时,它在运行2分钟后抛出超时ExecuteScalar

如果我使用相同的参数将该查询复制并粘贴到SSMS中,则它将在00:00:04甚至00:00:00(如果我刚刚更新了统计信息)时完成。

SELECT MAX(date) FROM iislogs WHERE host='servername' AND site='W3SVC1'
Run Code Online (Sandbox Code Playgroud)

我已经检查了阻塞,但看不到类似的东西-该数据库由一个应用程序访问,并且它不是多线程的或类似的东西。


更新:有趣的是,当我运行Profiler捕获的确切查询时,在SSMS中也需要很长时间:

exec sp_executesql N'SELECT MAX(date) …
Run Code Online (Sandbox Code Playgroud)

c# sql-server

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

重型构造函数或使用方法

这两种方法都对我有用,但我不确定从"良好实践"的角度来看这个建议是什么.

我有一个在我的库中执行各种控制功能的类,因此需要初始化各种对象和属性.

是否可以将所有这些逻辑放在类的构造函数中,或者我应该将它放在"Initialise"方法中.

public MyClass()
{
    mSubObjectA = new mSubObjectA();
    mSubObjectA.DoStuff();
    mSubObjectA.DoMoreStuff();

    mSubObjectB = new mSubObjectB();
    mSubObjectC = new mSubObjectC();

    if (something)
    {
        DoStuff();
    }
    else
    {
        MagicHappens();
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

FileSystemWatcher在PowerShell ISE中工作,但在运行时不工作

我想监视一个文件夹并移动符合特定条件的文件,所以我正在尝试使用FileSystemWatcher.

我有一个将与每个新文件调用的函数:

function ProcessFile()
{
    param ([string]$filename)
    Write-Host "Processing file '$filename' to $destination"
}
Run Code Online (Sandbox Code Playgroud)

然后我建立了一个FSW:

Write-Host "Watching $source for new files..."
$fsw = New-Object IO.FileSystemWatcher $source, $filter -Property @{IncludeSubdirectories = $false; NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}

Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action 
{
    ProcessFile $Event.SourceEventArgs.FullPath 
}
Run Code Online (Sandbox Code Playgroud)

当我从ISE运行它时工作正常,我下载到监视文件夹的任何文件都被正确跟踪,但如果我启动PowerShell窗口并使用.\ FileWatch.ps1运行脚本,则没有任何反应.

我看到了"正在观看......"的消息,但从未看到过"处理..."消息

这是在ISE中工作但不在shell中的完整脚本...

$source = 'D:\Dev\PowerShell\FileWatch\Test\Source'
$filter = '*.*'
$destination = 'D:\Dev\PowerShell\FileWatch\Test\Found\'

function ProcessFile()
{
    param ([string]$filename)
    Write-Host "Processing file '$filename' to $destination"
}

Write-Host "Watching $source for new files..."
$fsw = New-Object IO.FileSystemWatcher …
Run Code Online (Sandbox Code Playgroud)

powershell filesystemwatcher

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

创建XML以导入到Excel中,尤其是日期

问候。

我有一个简单的应用程序,该应用程序生成一些性能记录数据,并且我需要输出可被Excel访问。

我创建一个带有字段等的XML文档,并且可以在Excel中打开它。

问题是,如何强制Excel将日期视为日期?我尝试将日期值保存为各种格式,但是Excel始终将其视为文本。如果我单击该单元格并按Enter,它会愉快地显示为日期。当我执行“文本到列”操作时也是如此。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entries>
  <entry>
    <StartDate>14/07/2009 01:02:35</StartDate>
    <Total>1084</Total>
    <Connecting>788</Connecting>
    <Disconnecting>0</Disconnecting>
    <Queries>98</Queries>
  </entry>
  <entry>
    <StartDate>14/07/2009 01:10:00</StartDate>
    <Total>1054</Total>
    <Connecting>228</Connecting>
    <Disconnecting>1</Disconnecting>
    <Queries>104</Queries>
  </entry>
</entries>
Run Code Online (Sandbox Code Playgroud)

xml import excel

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