小编B. *_*non的帖子

如何使用JSON.NET反序列化JSON对象数组?

这里的"数组"和"对象"都可能不是一个合适的术语,但我确信你得到了我的大陆漂移.

我看到这个示例用于从官方文档序列化/反序列化自定义对象:

 product.Name = "Apple";
 product.ExpiryDate = new DateTime(2008, 12, 28);
 product.Price = 3.99M;
 product.Sizes = new string[] { "Small", "Medium", "Large" };

 string output = JsonConvert.SerializeObject(product);
 //{
//  "Name": "Apple",
//  "ExpiryDate": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
Run Code Online (Sandbox Code Playgroud)

但我需要反序列化一个对象的"数组"作为JSON元素,如:

IEnumerable<Platypus> deserializedProduct = JsonConvert.DeserializeObject<Platypus>(output);
Run Code Online (Sandbox Code Playgroud)

...要么:

List<Platypus> deserializedProduct = JsonConvert.DeserializeObject<Platypus>(output);
Run Code Online (Sandbox Code Playgroud)

在JsonConvert/JSON.NET方面,需要做些什么才能实现这一目标?

c# json generic-list json.net json-deserialization

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

为什么WindsorDependencyResolver无法解决?

我通过NuGet将Castle Windsor安装到我的Web API项目中(VS 2013; Castle 3.2.1).

我添加了这段代码:

var container = new WindsorContainer();
GlobalConfiguration.Configuration.DependencyResolver = new WindsorDependencyResolver(container);
Run Code Online (Sandbox Code Playgroud)

...从这里到Global.asax.cs的Application_Start方法.

然而,虽然我在我的引用中有Castle.Core和Castle.Windsor,但WindsorDependencyResolver是无法解析的(解析器没有得到解决是多么讽刺).

我该如何解决这个问题?

c# dependency-injection castle-windsor inversion-of-control visual-studio-2013

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

如何获取Web API / Castle Windsor来识别控制器?

我发现了为什么占位符“ Home Controller”在这里被调用

我在RouteConfig.cs中注释掉了对HomeController的引用,并添加了一个我希望它调用的Controller:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        //If get 404 error re: favicon, see http://docs.castleproject.org/(X(1)S(vv4c5o450lhlzb45p5wzrq45))/Windsor.Windsor-tutorial-part-two-plugging-Windsor-in.ashx or just uncomment the line below:
        //routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

        //routes.MapRoute(
        //    name: "Default",
        //    url: "{controller}/{action}/{id}",
        //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        //);

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "DepartmentsController", action = "GetCountOfDepartmentRecords", id = UrlParameter.Optional }
        );
    } …
Run Code Online (Sandbox Code Playgroud)

castle-windsor routes repository controller-factory asp.net-web-api-routing

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

如何安全地从SQL Server读取可能为null的字符串值?

当Address2列为空时,此行:

string address2 = sqlD8aReader.GetString(ADDRESS2_OFFSET);
Run Code Online (Sandbox Code Playgroud)

......失败了:

  System.Data.SqlTypes.SqlNullValueException was unhandled by user code
  HResult=-2146232015
  Message=Data is Null. This method or property cannot be called on Null values.
  Source=System.Data
  StackTrace:
       at System.Data.SqlClient.SqlBuffer.get_String()
       at System.Data.SqlClient.SqlDataReader.GetString(Int32 i)
       at HandheldServer.Models.SQLServerPOCRepository..ctor() in c:\HandheldServer\HandheldServer\Models\SQLServerPOCRepository.cs:line 58
  InnerException:
Run Code Online (Sandbox Code Playgroud)

如何安全地读取可能为null的字符串?它应该以某种方式在SQL中处理(如果是这样,如何?)还是应该在read/C#代码中处理?

c# sql t-sql sql-server isnull

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

为什么不允许Array.Count作为自己的索引值?

我需要按字母顺序排序一个值(invoice_no/invoiceNum).我有以下代码来做到这一点:

string beginningInvoiceNum = string.Empty;
string endingInvoiceNum = string.Empty;
. . .
XDocument doc = XDocument.Parse(stringifiedXML);
var DeliveredItems = doc.Descendants("DSD").Select(delItem => new
{
    lineID = delItem.Element("line_id").Value,
    invoiceNum = delItem.Element("invoice_no").Value,
    UPCCode = delItem.Element("upc_code").Value,
    desc = delItem.Element("description").Value,
. . .
}).ToList(); 

string[] invNums = new string[DeliveredItems.Count];
int i = 0;
foreach (var delItem in DeliveredItems)
{
    invNums[i] = delItem.invoiceNum;
    i++;
}
Array.Sort(invNums);
beginningInvoiceNum = invNums[0];
//endingInvoiceNum = invNums[invNums.Count - 1]; <= this does not work
endingInvoiceNum = invNums[DeliveredItems.Count-1]; // <= this works …
Run Code Online (Sandbox Code Playgroud)

c# arrays sorting indexer generic-list

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

为什么此文件默认保存到IIS Express文件夹?

我有这个代码将测试文件保存在我认为是我项目的bin文件夹中:

XDocument doc = XDocument.Parse(stringifiedXML);
doc.Save("testXMLFile.xml"); 
Run Code Online (Sandbox Code Playgroud)

...但实际上它最终出现在C:\ Program Files(x86)\ IIS Express中

是的,IIS Express正在托管这个Web API应用程序,当从Visual Studio运行应用程序时,我希望将该文件保存到项目的bin文件夹中.为什么这个?

我可以指定我想要保存文件的位置,如下所示:

// In PlatypusGlobals.cs
public static string appDataFolder = HttpContext.Current.Server.MapPath("~/App_Data/");

doc.Save(string.Format("{0}testXMLFile2.xml", PlatypusGlobals.appDataFolder));
Run Code Online (Sandbox Code Playgroud)

...但仍然希望"原始保存"转到bin目录.这是可配置的,还是我只需要将文件保存到IIS Express文件夹中?

c# bin visual-studio iis-express asp.net-web-api

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

为什么我会在我的SQLiteOpenHelper构造函数中获得"不兼容的类型:Bla无法转换为Context"?

我正在使用本教程在我的Android项目中实现SQLite功能.

我有这个SQLiteOpenHelper代码:

public class HHSSQLiteHandler extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "HHS.db";
    private static final String TABLE_VENDORS = "vendors";

    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_VENDORID = "vendorId";
    public static final String COLUMN_COMPANYNAME = "companyName";

    public HHSSQLiteHandler(Context context, String vendor,
                       SQLiteDatabase.CursorFactory factory, int company) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
    }
    . . .
Run Code Online (Sandbox Code Playgroud)

...但尝试以这种方式实例化该类:

protected void onPostExecute(String result) {
    try {
        JSONArray jsonArr …
Run Code Online (Sandbox Code Playgroud)

java sqlite android sqliteopenhelper android-sqlite

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

为什么Code Analysis告诉我,"不要多次丢弃对象":

在这段代码上:

public static string Base64FromFileName(string fileName)
{
    try
    {
        FileInfo fInfo = new FileInfo(fileName);
        long numBytes = fInfo.Length;
        FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fStream);
        byte[] bdata = br.ReadBytes((int)numBytes);
        br.Close();
        fStream.Close();
        return Convert.ToBase64String(bdata);
    }
    catch(Exception e)
    {
        throw e;
    }
}
Run Code Online (Sandbox Code Playgroud)

...我得到了Visual Studio的代码分析工具,警告," 不要多次丢弃对象......为了避免生成System.ObjectDisposedException,你不应该在对象上多次调用Dispose " fStream.Close();" 线.

为什么?fStream是否在上面的行中,BinaryReader关闭了?

无论如何,我不会更好地重构它:

. . .
using (FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))   
{
    using (BinaryReader br = new BinaryReader(fStream)) 
    {
        byte[] bdata = br.ReadBytes((int)numBytes);
    } //br.Close();
} …
Run Code Online (Sandbox Code Playgroud)

c# dispose filestream binaryreader visual-studio-2013

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

我怎样才能优雅地关闭RawCap?

我正在使用RawCap捕获从我的开发机器(一个应用程序)发送到自己(另一个应用程序)的数据包.我可以把它写入一个文件,如下所示:

RawCap.exe 192.168.125.50 piratedPackets.pcap
Run Code Online (Sandbox Code Playgroud)

...然后在Wireshark中打开*.pcap文件以检查详细信息.当我从Postman调用我的REST方法时,这有效,但是当使用Fiddler的Composer选项卡尝试相同时,*.pcap文件最终为空.我想这可能是因为我关闭RawCap的方式本身就是原始的 - 我只是关闭了命令提示符.打字"退出"在忙于捕捉时什么都不做.

如果在掠夺战利品之前捕获的数据包沉入海底,我怎样才能像现代的Mansel Alcantra一样?我怎样才能优雅地关闭RawCap,以便它(希望)将其内容保存到日志(*.pcap)文件中?

fiddler pcap analyzer packet-sniffers postman

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

如何使用 C# 从文本中提取人名和地名?

有没有可以从文本中提取人名和地名的 C# 算法?

例如,给定以下文本:

St. Mark died at Alexandria, in Egypt.  He was martyred, I think.
However, that has nothing to do with my legend.  About the founding of
the city of Venice--
Run Code Online (Sandbox Code Playgroud)

(摘自马克吐温的《国外的无辜者》)

...有什么方法可以提取:

St. Mark
Alexandria (or better yet, "Alexandria, Egypt")
Venice
Run Code Online (Sandbox Code Playgroud)

我意识到没有办法获得 100% 的准确度(其中捕获所有地名和人名,并且不添加“误报”),但 80% 的准确度可能非常有价值。

我知道每个单词都可以与百科全书之类的进行比较,但一定有更好的方法。另外,算法怎么知道如何组合“St.”?和“马克”并将“埃及亚历山大”视为“埃及亚历山大”?

c# parsing text

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