小编Mik*_*und的帖子

Drupal 7次浏览3次用户:当前过滤器丢失了吗?

我正在尝试过滤视图以仅显示当前用户的节点.按用户过滤:当前缺少,哪里可以找到/启用?

我一定很遗憾.

drupal-views drupal-7

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

C#中是否有用于间隔缩放值的接口?

我正在制作名的C#库C5 的间隔集合扩展.该IInterval接口定义的间隔具有可比较的端点(不相干构件除去):

public interface IInterval<T> where T : IComparable<T>
{
    T Low { get; }
    T High { get; }
}
Run Code Online (Sandbox Code Playgroud)

这通常很有效,因为区间端点可以是任何可比较的整数,日期甚至字符串.

然而,有时能够计算间隔的持续时间是有利的.间隔[3:5)的持续时间为2,间隔[1PM, 9PM)的持续时间为8小时.这对于可比对象是不可能的,因为它只给出了元素的顺序,而不是它们的距离,例如,很难给出两个字符串之间的距离.端点类型基本上必须是间隔缩放值.

是否有类似的界面IComparable<T>,允许我一般比较端点,但也做一些事情,比如减去两个端点以获得持续时间,并为低端点添加持续时间以获得可用于继承接口的高端点,IDurationInterval<T> : IInterval<T>例如?

或者更简洁:是否有间隔缩放值的接口?

c# icomparable intervals c5

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

简单类型的只读自动属性:初始化程序VS表达式主体获取器

在C#6.0中,新语法允许我们使用初始化程序编写只读自动属性:

public bool AllowsDuplicates { get; } = true;
Run Code Online (Sandbox Code Playgroud)

同样,我们可以使用表达式body getter来编写它:

public bool AllowsDuplicates => true;
Run Code Online (Sandbox Code Playgroud)

对于简单类型,这两个应该具有相同的效果:返回true的只读自动属性.

但是他们中的一个比另一个更受欢迎吗?我怀疑前者使用了支持字段:

private readonly bool _backingField = true;
public bool AllowsDuplicates {
    get {
        return _backingField;
    }
}
Run Code Online (Sandbox Code Playgroud)

而后者变成了类似的东西:

public bool AllowsDuplicates {
    get {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是正确的,还是编译器比这更聪明?

c# automatic-properties c#-6.0

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

检查通用接口成员是否为"纯粹"(具有纯属性)

我有一个接口,其方法使用以下Pure属性进行注释System.Diagnostics.Contracts:

public interface IFoo<T> {
    [Pure]
    T First { get; }

    [Pure]
    T Last { get; }

    [Pure]
    T Choose();

    void Add(T item);

    T Remove();
}
Run Code Online (Sandbox Code Playgroud)

我希望遍历接口的成员并检查成员是否是纯粹的.目前我无法从会员信息中获取任何属性:

var type = typeof(IFoo<>);
var memberInfos = type.GetMembers();
var memberInfo = memberInfos.First(); // <-- Just select one of them
var attributes = memberInfo.GetCustomAttributesData(); // <-- Empty
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

请注意,我没有类或实例.只有界面.

c# generics reflection interface custom-attributes

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

单个C#类的多个枚举器

我创建了一个由间隔组成的数据结构.数据结构自然应该有一个枚举所有间隔的枚举器,但我想暴露两个不同的枚举器,它们按不同的顺序枚举间隔.

其中一个枚举器非常快地枚举间隔,但是有些任意顺序.另一个按字典顺序列举它们,但有点慢(取决于间隔).根据您尝试实现的目标,一个普查员可能更喜欢另一个.

有没有办法允许用户决定应该在foreach循环中使用哪个枚举器?如果没有,我可以很容易地拥有一个用于在枚举器之间切换的属性,或者构造函数可以采用一个额外的参数.但我有点害怕它会导致更多的混乱而不是方便.

我是否应该为另一个枚举器创建一个返回IEnumerator的单独方法?这个奇怪的问题是否有最佳实践?

c# ienumerator foreach intervals

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

NSwag:如何在 C# -&gt; Swagger -&gt; C# 客户端中使用自定义值对象类型?

我有一个在输入和输出中都使用Noda Time类型的 API 。使用默认的 Noda Time 序列化格式(基本上是 ISO-8601 格式)将类型序列化为 JSON 中的字符串。

我有一个看起来像这样的对象:

public class NodaTimeDataStructure
{
    public System.DateTime DateTime { get; set; }
    public DateInterval DateInterval { get; set; }
    public DateTimeZone DateTimeZone { get; set; }
    public Duration Duration { get; set; }
    public Instant Instant { get; set; }
    public Interval Interval { get; set; }
    public IsoDayOfWeek IsoDayOfWeek { get; set; }
    public LocalDate LocalDate { get; set; }
    public LocalDateTime LocalDateTime { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# swagger nodatime swagger-codegen nswag

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

Azure Functions:如何在运行时读取 host.json 中的设置?

有没有办法在运行时读取 host.json 文件中的主机设置?假设您有一个如下所示的主机文件:

{
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "messageHandlerOptions": {
        "maxConcurrentCalls": 16
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

那么如何maxConcurrentCalls从 C# 代码中读取设置呢?

如果也包含默认值将是优选的。您应该获得与启动时控制台中打印的相同的值:

[28-01-2020 09:16:06] LoggerFilterOptions
[28-01-2020 09:16:06] {
[28-01-2020 09:16:06]   "MinLevel": "None",
[28-01-2020 09:16:06]   "Rules": [
[28-01-2020 09:16:06]     {
[28-01-2020 09:16:06]       "ProviderName": null,
[28-01-2020 09:16:06]       "CategoryName": null,
[28-01-2020 09:16:06]       "LogLevel": null,
[28-01-2020 09:16:06]       "Filter": "<AddFilter>b__0"
[28-01-2020 09:16:06]     },
[28-01-2020 09:16:06]     {
[28-01-2020 09:16:06]       "ProviderName": "Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.SystemLoggerProvider",
[28-01-2020 09:16:06]       "CategoryName": null,
[28-01-2020 09:16:06]       "LogLevel": "None",
[28-01-2020 09:16:06]       "Filter": null
[28-01-2020 …
Run Code Online (Sandbox Code Playgroud)

c# settings azure azure-functions

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

如何在本地覆盖我的 azure 函数的主机设置?

假设你有一个像这样的 host.json 文件:

{
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "messageHandlerOptions": {
        "maxConcurrentCalls": 16,
        "maxAutoRenewDuration": "00:05:00"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是您希望在本地覆盖local.settings.jsonAzure 上给定环境的设置中或设置中的设置。有可能吗,你是如何做到的?

settings azure azure-functions

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

在C#MVC3中重用跨控制器的会话

我正在使用MVC3在C#中创建一个网站.该网站是使用Web服务的客户端.Web服务使用每个用户的唯一会话ID,它是每个服务调用中的最后一个参数.您在登录时获得会话ID.

我能够获取会话ID并将其保存在用户控制器的属性中:

private string Sid
{
    get
    {
        var sid = Session["Sid"];
        return sid == null ? "" : sid.ToString();
    }
    set
    {
        Session["Sid"] = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的其他控制器中,我能够获得具有类似属性的会话ID(只是没有setter),但是当它要求用户控制器做某事时,它访问自己的属性来获取id,会话为null.

似乎会话不会在控制器之间传输,但我不知道如何做到这一点.我想从一个中心位置访问会话,而不是在每个控制器中都有属性,但我无法弄清楚如何做到这一点.

经过三天的搜索,谷歌一直无法给我答案.你有什么想法?

c# session asp.net-mvc-3

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

本地C#支持检查IEnumerable是否已排序?

是否有任何LINQ支持检查是否IEnumerable<T>已排序?我有一个我想要验证的枚举按非降序排序,但我似乎无法在C#中找到它的本机支持.

我使用IComparables<T>以下方法编写了自己的扩展方法:

public static bool IsSorted<T>(this IEnumerable<T> collection) where T : IComparable<T>
{
   Contract.Requires(collection != null);

   using (var enumerator = collection.GetEnumerator())
   {
      if (enumerator.MoveNext())
      {
         var previous = enumerator.Current;

         while (enumerator.MoveNext())
         {
            var current = enumerator.Current;

            if (previous.CompareTo(current) > 0)
               return false;

            previous = current;
         }
      }
   }

   return true;
}
Run Code Online (Sandbox Code Playgroud)

一个使用IComparer<T>对象:

public static bool IsSorted<T>(this IEnumerable<T> collection, IComparer<T> comparer)
{
   Contract.Requires(collection != null);

   using (var enumerator = collection.GetEnumerator())
   {
      if (enumerator.MoveNext())
      {
          var …
Run Code Online (Sandbox Code Playgroud)

c# linq sorted icomparable sortedlist

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