小编Ars*_*yan的帖子

依赖属性是如何实现的?

任何人都可以解释如何实现依赖属性?它只是一个在基类中声明的静态字典,并将给定实例的引用作为键吗?我在Internet上找不到任何关于此的资源...非常
感谢

wpf user-interface dependency-properties .net-3.5

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

如何在WPF中使用GDI +绘图?

我想在我的WPF控件中使用GDI +绘图.

wpf graphics gdi+

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

矩阵中的路径数

p x q尺寸矩阵给出,和大小的矩阵a x b从右上角除去.找到总数没有.从左上角到右下角的路径,只允许向右和向下移动.没有路径应该进入移除的矩阵.

例如-

 _
|_|_
|_|_|
Run Code Online (Sandbox Code Playgroud)

这是从右上角(2x2)移除矩阵后的(1x1)矩阵.没有.方式 - 5.

我能够找出路径的总数,但我想要消除进入被删除部分的路径的方法是非常基本的,因此效率不高.

那么,有没有更好的算法呢?

algorithm math combinatorics

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

MFC测量功能,以毫秒为单位

我如何计算某个函数(重复调用)的毫秒数?
我想到:
CTime::GetCurrentTM()之前,
CTime::GetCurrentTM()之后,

然后将结果插入CTimeSpan diff = after - before.
最后将diff存储到全局成员中,该成员总结所有差异,因为我想知道此函数花费的总时间.

但它会在几秒钟而不是几毫秒内给出答案.

mfc ctime

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

从链中删除委托

class Program
{
    internal delegate int CallBack(int i);

    static void Main(string[] args)
    {
        CallBack callbackMethodsChain = null;
        CallBack cbM1 = new CallBack(FirstMethod);
        CallBack cbM2 = new CallBack(SecondMethod);

        callbackMethodsChain += cbM1;
        callbackMethodsChain += cbM2;

        Delegate.Remove(callbackMethodsChain, cbM1);
    /*L_0039: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Remove(class  [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
        L_003e: pop 
        L_003f: ldloc.0 */

        Trace.WriteLine(callbackMethodsChain.GetInvocationList().Length);
        //Output: 2 **WTF!!!**


        callbackMethodsChain -= cbM1;
        /*
    L_0054: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Remove(class   [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
          L_0059: castclass Generics.Program/CallBack
          L_005e: stloc.0 
          L_005f: ldloc.0 
        */
        Trace.WriteLine(callbackMethodsChain.GetInvocationList().Length);
        //Output: 1
    }

    private static int FirstMethod(int …
Run Code Online (Sandbox Code Playgroud)

.net c# clr

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

动态添加加密的WCF邮件头

我们可以通过添加像这样的MessageHeader属性将Message头添加到WCF消息

 [MessageContract]
 public class HelloResponseMessage
 {
     [MessageHeader(ProtectionLevel=EncryptAndSign)]
     public string SSN
     {
         get { return extra; }
         set { this.extra = value; }
     }
 }
Run Code Online (Sandbox Code Playgroud)

第一个问题是,这有多安全,这适用于所有类型的WCF绑定吗?

第二个问题,是否有可能将加密的标题添加到所有消息中并在服务器部分中提取动态这样的?

MessageHeader header = MessageHeader.CreateHeader("SessionKey", "ns", _key);
OperationContext.Current.OutgoingMessageHeaders.Add(header);
Run Code Online (Sandbox Code Playgroud)

c# wcf

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

生成wcf代理与ChannelFactory

使用wcf服务这两种方式中的哪一种更好?为什么?

  1. 从服务引用生成代理
  2. 使用ChannelFactory

恩.

ChannelFactory<IMyContract> factory = new ChannelFactory<IMyContract>();
IMyContract proxy1 = factory.CreateChannel();
proxy1.MyMethod();
Run Code Online (Sandbox Code Playgroud)

这样调用wcf服务有点无聊

IMyContract proxy1 = null; 
try
{
    proxy1 = factory.CreateChannel();
    proxy1.MyMethod();
    ((ICommunicationObject)proxy1).Close();
}
catch
{
   ((ICommunicationObject)proxy1).Abort();
}
Run Code Online (Sandbox Code Playgroud)

我们是否应该为每个代理呼叫重复此片段?或者是否有通用的方法来创建一个用于关闭和中止代理的包装类?

写这样的类ServiceExecution.Execute(proxy=>proxy.MyMethod());创建代理,并关闭或中止它这样做的好方法?

c# wcf proxy

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

如何在流式传输wcf结束后删除文件

我使用netTcpBinding和streaming将文件从一个服务器发送到另一个服务器,就像我在这个代码项目文章中所描述的那样,据我所知在wcf中我们想要发送流我们应该创建并将其作为消息契约返回,问题是如何获得完成文件发送?因为我想在文件发送保证完成时将文件从收件箱移动到发件箱

c# wcf wcf-streaming

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

完成所有任务后继续执行任务

在某些类中,我想与Task异步加载2个集合并停止busyindicator

我尝试这样的东西

var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
WaitingIndicatorViewModel.IsBusy = true;
var loadData1 = new Task<ObservableCollection<Data1>>(GetData1FromService).ContinueWith(t => Data1Collection = t.Result, uiScheduler);
var loadData2 = new Task<ObservableCollection<Data2>>(GetData2FromService).ContinueWith(t => Data2Collection = t.Result, uiScheduler);

Task.Factory.StartNew(() =>{
                loadData1.Start();//<--Exception here           
                loadData2.Start();
                Task.WaitAll(loadData1, loadData2);
        })
.ContinueWith(o => WaitingIndicatorViewModel.IsBusy = false, uiScheduler);
Run Code Online (Sandbox Code Playgroud)

但这引发了例外 InvalidOperationException:Start may not be called on a continuation task.

为什么这不起作用,如何在完成两个任务后运行继续任务,而不阻塞当前线程?

c# android .net-4.0 task android-asynctask

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

在Linq中订购实体多列

我在SQL Server中有一个表,其中包含以下列

  • ID(身份/主键)
  • DestinationID(外键)
  • 日期(日期字段)
  • 时间(时间场)
  • DayOfWeek(Char(3)Field)即"MON","TUE"等.

我想按日期和时间订购数据,然后按DayOfWeek和Time订购数据.因此,所有带日期的记录都显示在顶部,按时间排序,然后是按时间排序的DayOfWeek.

我已经尝试了几种方法,但只是无法理解它,我有以下代码

    var qry = ctx.DestinationTimings.Where(x => x.DestinationID == this.ID)
                     .OrderBy(t => t.Date).ThenBy(t => t.Date != null)
                     .ThenBy(t => SqlFunctions.CharIndex(t.DayOfWeek + ",", "MON,TUE,WED,THU,FRI,SAT,SUN"))
                     .ThenBy(t => t.Time);
Run Code Online (Sandbox Code Playgroud)

c# linq-to-entities entity-framework

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