小编Joh*_*ers的帖子

在SQL Server中查找对象(跨数据库)

如果我被告知一个表(或proc)名称,但没有告诉该对象所在的连接数据库,是否有任何简单的脚本来搜索它?也许搜索系统数据库中的某个地方?(我正在使用SQL Server 2005)

sql-server sql-server-2005

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

Resharper建议参数可以是'BaseType'类型

在方法参数中使用基类型有什么好处?

这是一个样本:


private void Foo(List<int> numbers) //R# laments: parameter can be IEnumerable. 
{
    foreach (var i in numbers) {
        Console.WriteLine(i);
    }
}
Run Code Online (Sandbox Code Playgroud)



这是另一个


public class Foo : ICloneable
{
    public object Clone()
    {
        return MemberwiseClone();
    }

    public Foo CopyMe(Foo other) //R# laments: parameter can be ICloneable
    { 
        return (Foo)other.Clone();
    }
}
Run Code Online (Sandbox Code Playgroud)

...我们可以在哪里更改类型,但Foo在运行时会失败.



所以问题是:当R#建议参数可以是'X'时,我该怎么办?




PS.只是Whysharper的另一个解释- 一个与Resharper和StackOverflow相吻合的插件.人们说这很好,但缺乏很好的解释 - 希望我们能在一起做得更好;).

c# resharper

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

强制ASP.net webservice返回JSON

我有一个ASP.net Web服务,我用于Web应用程序,它向我返回XML或JSON数据,具体取决于我调用的函数.到目前为止,这一直运作良好,但我遇到了一个问题.我想在我的页面上创建一个"导出"链接,用于下载JSON文件.链接的格式非常简单:

<a href="mywebserviceaddress/ExportFunc?itemId=2">Export This Item</a>
Run Code Online (Sandbox Code Playgroud)

正如您可能想象的那样,这应该导出第2项.到目前为止,这么好,是吗?

问题是因为我并没有特别要求接受的内容类型是JSON,所以ASP.net绝对拒绝发回除XML以外的任何内容,这对于这种情况并不合适.代码基本如下:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public Item ExportItem(int itemId)
    {
        Context.Response.AddHeader("content-disposition", "attachment; filename=export.json"); //Makes it a download

        return GetExportItem(itemId);
    }
Run Code Online (Sandbox Code Playgroud)

尽管我将ResponseFormat指定为JSON,但除非我通过AJAX(使用Google Web Toolkit,BTW)请求此方法,否则我总是返回XML:

    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, "mywebserviceaddress/ExportFunc");
    builder.setHeader("Content-type","application/json; charset=utf-8");
    builder.setHeader("Accepts","application/json");
    builder.sendRequest("{\"itemId\":2}", new RequestCallback(){...});
Run Code Online (Sandbox Code Playgroud)

这很好,但AJAX不会给我一个下载对话框.有没有办法迫使ASP.net给我回JSON,无论数据是如何请求的?在我看来,没有手动覆盖这种行为是一个严重的设计疏忽.


快速回答:

首先,我想说,我认为womp的答案可能是长期更好的方式(转换为WCF),但是deostroll让我得到了我将在不久的将来使用的答案.此外,应该注意的是,这似乎主要是因为我只想下载,在所有情况下都可能无法正常工作.在任何情况下,这里是我最终用来获得我想要的结果的代码:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void ExportItem(int itemId)
    {
        Item item = GetExportItem(itemId);            

        JavaScriptSerializer js = new JavaScriptSerializer();
        string str = js.Serialize(item);

        Context.Response.Clear();
        Context.Response.ContentType = "application/json";
        Context.Response.AddHeader("content-disposition", "attachment; filename=export.json");
        Context.Response.AddHeader("content-length", str.Length.ToString());
        Context.Response.Flush();
        Context.Response.Write(str);
    }
Run Code Online (Sandbox Code Playgroud)

请注意 …

json web-services asmx

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

Visual Studio 2010和Web部署项目(wdproj 2008)

我在vs2008解决方案中有几个wdprojects(web deployment 2008).当我安装vs2010 RC时,我的wdprojects都不会打开.

我能做些什么才能让它发挥作用?

web-deployment-project visual-studio-2010

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

我如何XML序列化DateTimeOffset属性?

DateTimeOffset当数据表示为Xml时,我在此类中拥有的属性不会被呈现.我需要做什么来告诉Xml序列化将其正确呈现为DateTime或DateTimeOffset?

[XmlRoot("playersConnected")]
public class PlayersConnectedViewData
{
    [XmlElement("playerConnected")]
    public PlayersConnectedItem[] playersConnected { get; set; }
}

[XmlRoot("playersConnected")]
public class PlayersConnectedItem
{
    public string name { get; set; }
    public DateTimeOffset connectedOn { get; set; }  // <-- This property fails.
    public string server { get; set; }
    public string gameType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和一些样本数据......

<?xml version="1.0" encoding="utf-8"?>
<playersConnected 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <playerConnected>
    <name>jollyroger1000</name>
    <connectedOn />
    <server>log1</server>
    <gameType>Battlefield 2</gameType>
  </playerConnected>
</playersConnected>
Run Code Online (Sandbox Code Playgroud)

更新

我希望可能有一种方法通过属性,我可以在属性上装饰......

奖金问题

有没有办法摆脱根节点中声明的那两个命名空间?我是不是该?

.net xml-serialization

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

如何在未授权时将用户重定向到ASP.NET页面?

我需要将我的用户重定向到AuthError.aspx页面("您无权访问此页面"),如果他们经过身份验证但尝试访问他们无法访问的页面(因为考试的角色) .如果我设置了web.config,那么:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

这是系统的错误行为,因为用户已经过身份验证,无需将他或她重定向到此页面.但是,如果我在这里写AuthError.aspx而不是Login.aspx我怎么能将尚未验证的用户重定向到登录页面?

asp.net authentication authorization

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

接口作为返回类型

接口可以是函数的返回类型.如果是的话那就是优势.例如,以下代码更正在返回接口数组的位置.

public interface Interface
{
    int Type { get; }
    string Name { get; }
}

public override Interface[] ShowValue(int a)
{
.
.

}
Run Code Online (Sandbox Code Playgroud)

c# interface

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

CryptoStream可以让基本流保持打开状态吗?

我创建了一个MemoryStream,传递给CryptoStream写作.我希望CryptoStream加密,然后让MemoryStream我开放,然后阅读其他内容.但是一旦CryptoStream被处置,它MemoryStream也会被处置掉.

可以以某种方式打开CryptoStream基地MemoryStream吗?

using (MemoryStream scratch = new MemoryStream())
{
    using (AesManaged aes = new AesManaged())
    {
        // <snip>
        // Set some aes parameters, including Key, IV, etc.
        // </snip>
        ICryptoTransform encryptor = aes.CreateEncryptor();
        using (CryptoStream myCryptoStream = new CryptoStream(scratch, encryptor, CryptoStreamMode.Write))
        {
            myCryptoStream.Write(someByteArray, 0, someByteArray.Length);
        }
    }
    // Here, I'm still within the MemoryStream block, so I expect
    // MemoryStream to still be usable. …
Run Code Online (Sandbox Code Playgroud)

c# stream objectdisposedexception

21
推荐指数
5
解决办法
4593
查看次数

更改JSON文件中的值(写入文件)

我的应用程序的Release文件夹中有一个settings.json文件.我想要做的是更改它的值,而不是暂时,永久..这意味着,删除旧条目,写一个新条目并保存它.

这是JSON文件的格式

{
"Admins":["234567"],
"ApiKey":"Text",
"mainLog": "syslog.log",
"UseSeparateProcesses": "false",
"AutoStartAllBots": "true",
"Bots": [
    {
        "Username":"BOT USERNAME",
        "Password":"BOT PASSWORD",
        "DisplayName":"TestBot",
        "Backpack":"",
        "ChatResponse":"Hi there bro",
        "logFile": "TestBot.log",
        "BotControlClass": "Text",
        "MaximumTradeTime":180,
        "MaximumActionGap":30,
        "DisplayNamePrefix":"[AutomatedBot] ",
        "TradePollingInterval":800,
        "LogLevel":"Success",
        "AutoStart": "true"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

假设我想更改密码值而不是BOT PASSWORD我希望它只是密码.我怎么做?

c# json

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

为什么String.Clone()返回原始字符串而不是它的副本?

令人惊讶的是,String.Clone()不会像返回的那样返回字符串的副本String.Copy().相反,它返回'this'原始字符串.

我想了解为什么.Net Framework团队选择这样做.

根据MSDN:

ICloneable接口[...]要求您的Clone方法实现返回当前对象实例的副本.

String.Clone() 显然不遵循本指南.

我知道字符串是不可变的,但如果不变性是这里的原因,String.Copy()也会返回,this但事实并非如此.

当然,这是一个相当理论化的问题.

.net c# string icloneable

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