小编Joh*_*res的帖子

如何导出和导入函数并使用MEF执行它们?

我正在创建一个导入多个插件的应用程序.我需要能够执行每个插件中实现的功能.例如,我需要做这样的事情.

/////////////////////////////////////////////////////////////////////////////////
MainApp:
[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions1 { get; set; }

[ImportMany(?)]
public IEnumerable<Lazy<?>> PluginFunctions2 { get; set; }

foreach (f1 in PluginFunctions1)
{
   f1();  // execute Function1 from each plugin
}

foreach (f2 in PluginFunctions2)
{
   string result = f2(val);  // execute Function2 from each plugin
}

/////////////////////////////////////////////////////////////////////////////////
Plugin:
[export(?)]
public void Function1()
{
}

[export(?)]
public string Function2(string value)
{
    return result;
}
/////////////////////////////////////////////////////////////////////////////////
Run Code Online (Sandbox Code Playgroud)

问题是我不确定如何定义导入和导出以及如何准确执行该功能.

c# import mef export function

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

如何使用正则表达式匹配任何字母组合?

如何以任意组合和不同长度匹配字母a,b,c,如下所示:

表达式应符合以下情况:

abc
bc
a
b
bca
Run Code Online (Sandbox Code Playgroud)

但不应该匹配这些:

abz
aab
cc
x
Run Code Online (Sandbox Code Playgroud)

html javascript java regex perl

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

如何设置用户控件属性的初始值?

我正在创建一个自定义用户控件,我想知道如何在设计时设置属性的初始值?我有一个名为Alignment的属性,它有4个枚举值TopRight,TopLeft,BottomRight和BottomLeft.因此,当用户将用户控件放到Form上时,我希望该属性的初始值始终为BottomRight.我怎样才能做到这一点?

c# user-controls initialization properties

8
推荐指数
2
解决办法
7868
查看次数

为什么使用匿名委托声明此事件?

我见过人们定义他们的事件是这样的:

public event EventHandler<EventArgs> MyEvent = delegate{};
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下如果没有它,这与定义它有何不同?是否要在提升事件时避免检查null?

c# events

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

FFmpeg avformat_open_input无效:处理输入时找到无效数据

这是我第一次使用FFmpeg.我尝试打开的每种类型的媒体文件都avformat_open_input返回"处理输入时找到的无效数据".我使用的是32位FFmpeg Build版本:92de2c2.我根据这个答案设置我的VS2015项目:在Visual Studio中使用FFmpeg.这段代码可能出现什么问题?

#include "stdafx.h"
#include <stdio.h>

extern "C"
{
    #include "libavcodec/avcodec.h"
    #include <libavformat/avformat.h>
    #include <libavutil/avutil.h>
}

int main(int argc, char *argv[])
{
    AVFormatContext *pFormatCtx = NULL;
    avcodec_register_all();

    const char* filename = "d:\\a.mp4";
    int ret = avformat_open_input(&pFormatCtx, filename, NULL, NULL);
    if (ret != 0) {
        char buff[256];
        av_strerror(ret, buff, 256);
        printf(buff);
        return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

ffmpeg visual-c++ visual-studio-2015

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

如何处理表单上的很多控件?

我想知道如何处理一个有很多控件的表单.您是否将所有处理代码填入表单?这就是我一直在做的事情,但由于我需要使用的所有控件,我最近的项目失控了.我有菜单,多个工具栏,填充控件的tabcontrols,状态栏,......你明白了.我正在考虑使用部分类来分解事物,但这可能是一个坏主意.我只是需要一些关于我应该做什么的建议.

.net c# controls winforms

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

如何使用HtmlAgilityPack获取表单输入而不会出现空引用错误?

如何<br>从下面的表单HTML中提取第二组输入节点?

当我尝试以下操作时,我没有输入节点.

HtmlNode.ElementsFlags.Remove("form");
HtmlNode formNode = doc.DocumentNode.SelectNodes("//form")[0];
foreach (HtmlNode innode in formNode.Elements("input"))
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

HTML

<form>
  <div>
    <input type="submit" value="subv1" name="subn1">
  </div>
  <script></script>
  <table></table>
  <table></table>
  <br>
  <input type="hidden" value="v1" name="n1">
  <input type="hidden" value="v2" name="n2">
  <input type="submit" value="subv2" name="subn2">
</form>  
Run Code Online (Sandbox Code Playgroud)

html c# html-agility-pack

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

如何判断主音量是否静音?

我使用以下内容将计算机上的主音频静音/取消静音.现在,我正在寻找一种确定静音状态的方法.在C#中有这么简单的方法吗?

    private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
    private const int WM_APPCOMMAND = 0x319;
    [DllImport("user32.dll")]
    public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
Run Code Online (Sandbox Code Playgroud)

c# audio winapi mute

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

如何以编程方式从颜色数组创建24bpp位图?

我试图以编程方式从包含颜色数据的数组创建位图.使用下面的代码,当在图片框中显示时,我会并排获得3个重复的扭曲图像.谁能告诉我哪里出错了?

    public Bitmap CreateBM(int[,] imgdat)
    {
        Bitmap bitm = new Bitmap(imgdat.GetUpperBound(1) + 1, imgdat.GetUpperBound(0) + 1, PixelFormat.Format24bppRgb);
        BitmapData bitmapdat = bitm.LockBits(new Rectangle(0, 0, bitm.Width, bitm.Height), ImageLockMode.ReadWrite, bitm.PixelFormat);
        int stride = bitmapdat.Stride;

        byte[] bytes = new byte[stride * bitm.Height];
        for (int r = 0; r < bitm.Height; r++)
        {
            for (int c = 0; c < bitm.Width; c++)
            {
                Color color = Color.FromArgb(imgdat[r, c]);
                bytes[(r * bitm.Width) + c * 3] = color.B;
                bytes[(r * bitm.Width) + c * 3 + …
Run Code Online (Sandbox Code Playgroud)

c# bitmap

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

在设计时如何防止容器控件在用户控件中移动?

我有一个自定义控件,其中包含 6 个面板控件,它们的作用类似于在设计时放入的其他控件的容器。这是通过创建一个继承自 ParentControlDesign 的自定义设计器来完成的。在设计器中,我使用 EnableDesignMode 为每个面板控件启用设计时功能。问题是当我使用控件时,我可以移动面板。我可以做些什么来防止它们在设计时移动?

c# user-controls containers design-time

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

如何使用Regex提取带续行的文本?

如何使用正则表达式从使用行继续符"_"的源字符串中提取以下内容.注意,行继续符必须是该行的最后一个字符.此外,搜索应该从字符串的结尾开始,并在第一个"("遇到的时候终止.这是因为我只对文本末尾发生的事情感兴趣.

想要输出:

var1, _
    var2, _
    var3
Run Code Online (Sandbox Code Playgroud)

资源:

...
Func(var1, _
    var2, _
    var3
Run Code Online (Sandbox Code Playgroud)

c# regex

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