小编and*_*ewb的帖子

C#从Azure检索Blob列表

在一定的保留期限之后,我需要一些存档清理代码来删除旧的Azure日志。

我知道我可以这样做:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("ctr");

var blobList = container.ListBlobs();
foreach(var blob in blobList)
{
    logger.Info($"Blob Name: {blob.Uri}");
}
Run Code Online (Sandbox Code Playgroud)

但是在我的容器中结构是

/
/year/month/day/hour/files
Run Code Online (Sandbox Code Playgroud)

所以现在有

/2017/5/11/14/files
/2017/5/11/17/files
/2017/5/11/22/files
/2017/5/11/23/files
Run Code Online (Sandbox Code Playgroud)

/2017/5/12/11/files
Run Code Online (Sandbox Code Playgroud)

其中文件是多个备份文件。

for循环中只有1个项目,因为2017文件夹是根目录。

有没有办法检索所有斑点?

最终目标是删除所有早于保留期的Blob。

c# azure azure-storage-blobs

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

Web API方法永远不会路由到

我之前玩过Web API,但似乎总是遇到我的方法无法路由到的相同问题。

我的应用程序具有该应用程序见解包,因此我可以看到它捕获了我提出的请求-通过查看方法签名上方的请求行,但它们从未真正执行过,并且App Insights报告失败的请求。

这是我的WebApiConfig

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
;
Run Code Online (Sandbox Code Playgroud)

这是我简单的控制器和方法

public class ExampleController : ApiController
{
    [HttpGet]
    [ActionName("Test")]
    public IHttpActionResult Test()
    {
        return Ok();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是MVC应用程序的一部分,因此,当我启动项目时,“主页/索引”视图将显示在浏览器中。然后,我去邮递员创建一个新的Get请求,指向

http://localhost:port/api/Example/Test
Run Code Online (Sandbox Code Playgroud)

但这导致404。

我一定做错了,因为我总是碰到这个

c# asp.net-web-api

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

转换yyyy-mm-ddThh:mm:ssz到日期时间 - 小时回来不正确

我有一个以下格式的字符串:

yyyy-mm-ddThh:mm:ssZ
Run Code Online (Sandbox Code Playgroud)

示例字符串:

2013-09-15T00:24:26.4215967Z
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为日期时间,因此我使用以下代码:

string testDateExample = "2013-09-15T00:24:26.4215967Z";
DateTime dateConversion = XmlConvert.ToDateTime(testDateExample);
Console.WriteLine(dateConversion);
Run Code Online (Sandbox Code Playgroud)

哪个会输出:

9/15/2013 10:24:26 AM
Run Code Online (Sandbox Code Playgroud)

为什么00在当时被转换为上午10点?

c# date

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

如何从PHP脚本中理解/使用json输出

使用PHP PDO我运行此查询

SELECT Name, Latitude, Longitude, Begin, End FROM VenueData
Run Code Online (Sandbox Code Playgroud)

并获取数据

$data = $sth->fetchAll();
Run Code Online (Sandbox Code Playgroud)

然后输出

header("Content-type: application/json");
print(json_encode(array('venues'=>$data)));
Run Code Online (Sandbox Code Playgroud)

然而输出很奇怪,

{"venues":[{"Name":"Flintstone1","0":"Flintstone1","Latitude":"57","1":"57","Longitude":"-124","2":"-124","Begin":"8","3":"8","End":"14","4":"14"}]}
Run Code Online (Sandbox Code Playgroud)

对于选择查询中的每一列,似乎在json中有2个键,一个是名称,另一个是索引0-n.我之前没遇到过这个,为什么会这样?

php json pdo

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

如何调用扩展方法从数组中删除项目

在我继承的一个非常古老的代码库中,有一个带有此签名的方法

public static void Remove<TSource>(this ICollection<TSource> source, Func<TSource, bool> predicate)
Run Code Online (Sandbox Code Playgroud)

我试图在一个数组上调用此方法.该数组名为Items,是一个section的属性

section.Items.Remove(// what goes here?)
Run Code Online (Sandbox Code Playgroud)

Items是一系列产品.

为清楚起见,这是Remove方法

    public static void Remove<TSource>(this ICollection<TSource> source, Func<TSource, bool> predicate)
    {
        var items = source.ToArray();
        for (var index = items.Length - 1; index >= 0; index--)
        {
            var item = items[index];
            if (predicate.Invoke(item))
            {
                source.Remove(item);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

c#

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

在SharePoint列表对象上使用linq

我有一个引用SharePoint列表的C#变量.

我需要迭代每个列表项并进行条件检查.

我想在进入循环之前使用linq调用来过滤掉一些数据.

以下是我如何引用该列表:

SPList list = root.Lists[LISTNAME];
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

var items = from li in list.items
    where li.field.Contains("value")
    select li;
Run Code Online (Sandbox Code Playgroud)

这可能吗?我不确定标准命名空间System.Linq是否可以与SharePoint一起使用.

谢谢,安德鲁

c# linq sharepoint

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

使用 RestSharp 提交 POST 请求,将值添加到 header

我正在尝试使用 C# 中的 RestSharp 向 API 提交一些数据,似乎我的所有参数都添加到 Headers 集合中 - 或者这就是它们在 VS 中的编目方式。

这是我的代码

var client = new RestClient("https://api.com");
var request = new RestRequest("/recognize", Method.POST);

request.AddHeader("app_id", "");
request.AddHeader("app_key", "");
request.AddHeader("Content-Type", "multipart/form-data");

request.AddParameter("gallery_name", model.gallery_name);
request.AddParameter("image", model.image);

var response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

从 API 返回的错误表示请求缺少 gallery_name 和 image 参数,但查看它们在 Headers 集合中的请求对象。

我可以在 Postman 中进行调用,其中方法设置为 Post,Body 设置为 form-data,并列出 2 个键/值对。

我究竟做错了什么?

c# restsharp

0
推荐指数
1
解决办法
2558
查看次数