小编Jev*_*sov的帖子

WebAPI中的DependencyResolver.SetResolver和HttpConfiguration.DependencyResolver有什么区别

我有现有的项目,它使用AutoFac作为IoC.

在注册码中我有这些线:

var resolver = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(resolver));
config.DependencyResolver = new AutofacWebApiDependencyResolver(resolver);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是DependencyResolver.SetResolver和之间的区别是什么HttpConfiguration.DependecyResolver?我为什么要指定它们?

c# asp.net-mvc autofac asp.net-web-api

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

与泛型参数的接口与使用泛型方法的接口

假设我有这样的界面和具体实现

public interface IMyInterface<T>
{
    T My();
}

public class MyConcrete : IMyInterface<string>
{
    public string My()
    {
        return string.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我创建了MyConcrete实现strings,我可以有一个更具体的实现int.那没关系.但是,让我们说,我想做同样的事情,但使用通用方法,所以我有

public interface IMyInterface2
{
    T My<T>();
}

public class MyConcrete2 : IMyInterface2
{
    public string My<string>()
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我有相同的IMyInterface2,但它通过定义通用行为T My<T>().在我的具体类中,我想实现My行为,但对于具体的数据类型 - string.但C#不允许我这样做.

我的问题是为什么我不能这样做?换句话说,如果我可以创建MyInterface<T>as的具体实现MyClass : MyInterface<string>并在此时停止泛化,为什么我不能用泛型方法做到这一点 - T My<T>()

.net c# clr

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

模式获取对象结构差异和统计信息或如何创建差异工具

假设我有这样的结构

public class Form
{
    #region Public Properties

    public List<Field> Fields { get; set; }

    public string Id { get; set; }

    public string Name { get; set; }

    public string Version { get; set; }

    public int Revision { get; set; }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

所以Form该类包含字段列表,假设字段本身用这种结构表示

public class Field
{
    #region Public Properties

    public string DisplayName { get; set; }

    public List<Field> Fields { get; set; }

    public string Id { get; set; }

    public FieldKind Type { …
Run Code Online (Sandbox Code Playgroud)

c# algorithm comparison design-patterns data-structures

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

使用TPL进行协作式多任务处理

我们正在移植建模应用程序,它使用IronPython脚本在建模过程中进行自定义操作.现有应用程序在单独的线程中执行每个Python脚本,并为此使用协作模型.现在我们想将它移植到TPL,但首先我们要测量上下文切换.基本上,我们现在拥有的:

  1. Task队列
  2. 每个Task队列都执行一个IronPython脚本
  3. 在IronPython脚本里面我们调用了C#类方法,它是同步点并且应该转移Task(IronPython执行)到等待状态

我们想做什么:

  1. 我们想要进行无限循环,它将遍历Tasks队列
  2. 当我们得到一个时,Task我们尝试执行它
  3. 在PythonScript中,我们想要调用C#方法并将此脚本转移到等待状态.但不要将其从队列中删除.
  4. 在下一次迭代时,当我们得到另一个时,Task我们检查它是否处于等待状态.如果是这样,我们将其唤醒并尝试执行.
  5. 在每一刻我们应该只有一个活跃的 Task
  6. 最后我们要测量Task每秒可执行的数量

我真的不知道合作多任务是什么?我们在考虑定制TaskScheduler,这是好方法吗?还是有人知道更好的解决方案?

谢谢.

更新:

好的,例如,我有这样的代码:

public class CooperativeScheduler : TaskScheduler, IDisposable
    {
        private BlockingCollection<Task> _tasks;

        private Thread _thread;

        private Task _currentTask;

        public CooperativeScheduler()
        {
            this._tasks = new BlockingCollection<Task>();
            this._thread = new Thread(() =>
                {
                    foreach (Task task in this._tasks.GetConsumingEnumerable())
                    {
                        this._currentTask = task;

                        TryExecuteTask(this._currentTask);
                    }
                }
            );

            this._thread.Name = "Cooperative scheduler thread";

            this._thread.Start();
        } …
Run Code Online (Sandbox Code Playgroud)

c# python multithreading scheduled-tasks task

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

是否可以将Entity Framework与Windows Azure开发存储服务一起使用?

编辑:是否可以将实体框架与Windows Azure开发存储服务一起使用?如何?

谢谢.

entity-framework azure c#-4.0 azure-sql-database

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

如何在.NET 4中覆盖动态对象的PropertyDescriptor.GetValue和PropertyDescriptor.SetValue

我们正在使用DynamicObject动态属性创建,但我们想用它PropertyGrid来显示这些属性并进行编辑.

首先,我发现这个文章,而这一个.我尝试使用第二篇文章代码,但以更通用的方式,基本上用变量替换所有方法名称常量.但问题是VS2010找不到CSharpGetMemberBinder类型.

有人知道如何更换它吗?或者最好的方法是什么?

c# binding dynamic c#-4.0

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

C#:如何检测屏幕阅读器是否正在运行?

如何检测屏幕阅读器是否正在运行(JAWS)?

正如我在.NET 4的理解,我们可以使用AutomationInteropProvider.ClientsAreListeningSystem.Windows.Automation.Provider命名空间,但如果我必须做的.NET 2.0是什么?

我试图检查ClientsAreListening源代码,它RawUiaClientsAreListening从UIAutomationCore.dll库调用外部方法.

您对如何在.NET 2.0中实现JAWS检测有任何想法吗?

c# accessibility screen-readers ui-automation jaws-screen-reader

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

Kendo TabStrip与KendoGrid内部使用JavaScript进行事件处理

我有一个简单的页面与Kendo TabStrip里面

<div id="main-view" class="k-content">
    @(Html.Kendo().TabStrip()
            .Name("main-view-tabstrip")
            .Items(tabstrip =>
                {
                    tabstrip.Add().Text("My Notices").LoadContentFrom("MyNotices", "Notice").Selected(true);
                }))
</div>
Run Code Online (Sandbox Code Playgroud)

它根据需要为我加载内容,查询NoticeController.NoticeControllerMyNotices回复我的行动PartialView.

public PartialViewResult MyNotices()
{
    // put some values into ViewData

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

PartialView itseld看起来像这样:

<div style="margin: 20px; height: 700px;">
    @(Html.Kendo().Grid<NoticeViewModel>(Model)
      .HtmlAttributes(new { @class = "fullScreen" })
      .Name("NoticesList")
      .Columns(columns =>
          {
              columns.Bound(x => x.UniqueId).Title("UniqueId");
              columns.Bound(x => x.FormName).Title("Form");
              columns.Bound(x => x.Revision).Title("Revision");
              columns.Bound(x => x.Language).Title("Language");
              columns.Bound(x => x.Status).Title("Status");
          }
      )
      .Pageable()
      .Scrollable()
      .Sortable()
      .Selectable()
      .ToolBar(
          toolbar => toolbar.Create().Text("New") …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net-mvc kendo-ui kendo-grid

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

如何禁用级联的Kendo DropDownLists?

我必须使用Kendo DropDownLists,我想在第一个DDL的值被加载并且限制为我的viewmodel的值时禁用第二个DDL.

所以我有这样的代码:

@(Html.Kendo().DropDownList()
      .Name("FormGroupId")
      .HtmlAttributes(new { style = "width:250px" })
      .OptionLabel("Select form group...")
      .Template("#= data.Name # - #= data.Version #")
      .DataTextField("Name")
      .DataValueField("Id")
      .Events(events =>
      {
          events.Change("onFormGroupChanged");
          events.Select("onFormGroupSelected");
          events.Cascade("onFormGroupCascaded");
      })
      .DataSource(source =>
      {
            source.Read(read => { read.Route(RouteConfig.GetFormGroupNames.Name); });
      })
)
Run Code Online (Sandbox Code Playgroud)

@(Html.Kendo().DropDownList()
      .Name("Schema")
      .HtmlAttributes(new { style = "width:250px" })
      .OptionLabel("Select schema...")
      .DataTextField("SchemaName")
      .DataValueField("SchemaId")
      .DataSource(source => 
      {
          source.Read(read =>
          {
              read.Route(RouteConfig.FilterFormSchemas.Name).Data("filterSchemas");
          })
          .ServerFiltering(true);
      })
      .Enable(false)
      .AutoBind(false)
      .CascadeFrom("FormGroupId")
)
Run Code Online (Sandbox Code Playgroud)

我在第一个DDL上订阅了Cascade事件,并尝试从那里禁用第二个DDL,但它不起作用.

JS:

function onFormGroupCascaded(e) {
    $("#Schema").data("kendoDropDownList").enable(false);
}
Run Code Online (Sandbox Code Playgroud)

javascript c# telerik kendo-ui kendo-asp.net-mvc

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

JsonConvert.DeserializeObject 和 ThreadAbortedException

在 Xamarin 项目中,我有带有以下代码的 PCL 库。

我们定义一个ConcurrentQueue<SyncRequest>. 对于哪个对象初始化,消费者Task已附加:

_syncConsumer = new Task(
                ProcessSyncQueue,
                _syncConsumerCancellationTokenSource.Token);
_syncConsumer.Start();
Run Code Online (Sandbox Code Playgroud)

ProcessSyncQueue方法扫描同步队列并调用GetSyncableEntity方法:

private async void ProcessSyncQueue()
{
    while (true)
    {
         SyncRequest syncRequest;
         if (_syncQueue.TryDequeue(out syncRequest))
         {
             var syncableEntity = GetSyncableEntity(syncRequest);
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

GetSyncableEntity 依次执行 Json 反序列化:

private T GetSyncableEntity(SyncRequest syncRequest)
{
    T syncableEntity = default(T);

    try
    {
       syncableEntity = JsonConvert.DeserializeObject<T>(syncRequest.SynchronizationContent);
    }
    catch (Exception e)
    {

    }

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

在此步骤中,我们收到ThreadAbortedException“线程正在中止”消息。堆栈跟踪:

   at Newtonsoft.Json.JsonTextReader.FinishReadStringIntoBuffer(Int32 charPos, Int32 initialPosition, Int32 …
Run Code Online (Sandbox Code Playgroud)

c# json task json.net xamarin

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