小编Gre*_*reg的帖子

使用反射在dll中获取某些基类型的所有类

我有一个dll包含许多都继承自CommandBase类的类.我正在尝试使用C#中的反射来获取所有这些类(CommandA,CommandB,CommandC等)的实例,以便我可以在每个类上调用特定方法.这是我到目前为止:

//get assemblies in directory.
string folder = Path.Combine(HttpContext.Current.Server.MapPath("~/"), "bin");
var files = Directory.GetFiles(folder, "*.dll");
//load each assembly.
foreach (string file in files)
{
  var assembly = Assembly.LoadFile(file);
  if (assembly.FullName == "MyCommandProject")
  {
    foreach (var type in assembly.GetTypes())
    {
      if (!type.IsClass || type.IsNotPublic) continue;
      if(type is CommandBase)
      {
        var command = Activator.CreateInstance(type) as CommandBase;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我有2个问题.第一个问题是"if(type is CommandBase")行给出以下警告:

给定的表达式永远不是提供的类型CommandBase.

第二个问题是我无法弄清楚如何获取实际对象的实例(CommandA,CommandB等...),仅将其转换为CommandBase是不够的.

c# reflection

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

将属性添加到动态对象.NET

我可能想要太多,但我的情景是

public dynamic CreateConfigObject(JobConfigurationModel config) {
    dynamic configObject = new { };

    configObject.Git = new GitCheckout {
        Repository = config.Github.Url
    };

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

当然,它失败了,configObject.Git因为这个属性不存在.我希望能够在运行时添加任意数量的属性,而不需要预先知道属性的数量和名称;

这种情况在C#中是否可能,或者我的JavaScript想象力开始伤害我?:)

.net c# dynamic

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

从Facebook页面墙或组墙获取数据,以便在个人网站上使用

我想连接到公共Facebook页面或组,并在个人网站上列出墙上的所有条目.我将在我的服务器上使用PHP,这对我来说是最好的解决方案.或者javascript.

任何人都可以解释或者提供一个如何做到这一点的工作代码?或者只是为了制作这个所有的步骤?

如果它可以处理每个帖子的人,日期,描述......的信息,那将是伟大的!所以我的布局可以定制.

谢谢你帮助我!

php facebook screen-scraping

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

Enum拳击和平等

为什么这会返回False

    public enum Directions { Up, Down, Left, Right }

    static void Main(string[] args)
    {
        bool matches = IsOneOf(Directions.Right, Directions.Left, Directions.Right);
        Console.WriteLine(matches);
        Console.Read();
    }

    public static bool IsOneOf(Enum self, params Enum[] values)
    {
        foreach (var value in values)
            if (self == value)
                return true;
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

这会返回True吗?

    public static bool IsOneOf(Enum self, params Enum[] values)
    {
        foreach (var value in values)
            if (self.Equals(value))
                return true;
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

.net c# enums boxing

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

转发电子邮件检测

有没有办法检测(使用RFC 2822标题)电子邮件是转发的电子邮件?

email

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

Jquery UI buttonset图标

我在向jQuery UI的按钮组添加图标时遇到了麻烦.向按钮添加图标工作正常.有没有人有这个工作的例子

谢谢

标记

<div id="radio" class='demo'>
    <input type="radio" id="radio1" name="radio" /><label for="radio1">Top 10 FAQ's</label>
    <input type="radio" id="radio2" name="radio" /><label for="radio2">Last 30 Days</label>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本

$("#radio").buttonset({ icons: { primary: 'ui-icon-triangle-1-ne'} });
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui

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

如何远程开发软件?

假设我有一台运行在Linux上的服务器,我想在其上开发软件(主要是OCaml,C/C++和Java).

有没有办法"远程开发"这些东西?我的意思是一个允许我远程修改文件的IDE(然后在修改和保存时上传它们)并通过SSH编译(基本上是调用makeomake).

我正在寻找能让这个过程对开发人员透明的东西,而不用手工做事.我习惯使用Eclipse,所以我想知道是否存在实现此功能的插件或是否还有其他选择?

请注意,本地机器可能无法构建我打算使用的软件(例如OCaml),因此它应该仅依赖于远程连接.

提前致谢

ide

13
推荐指数
2
解决办法
8719
查看次数

将中位数方法添加到列表中

我想覆盖C#中的List对象,以便添加像Sum或Average这样的Median方法.我已经找到了这个功能:

public static decimal GetMedian(int[] array)
{
    int[] tempArray = array;
    int count = tempArray.Length;

    Array.Sort(tempArray);

    decimal medianValue = 0;

    if (count % 2 == 0)
    {
        // count is even, need to get the middle two elements, add them together, then divide by 2
        int middleElement1 = tempArray[(count / 2) - 1];
        int middleElement2 = tempArray[(count / 2)];
        medianValue = (middleElement1 + middleElement2) / 2;
    }
    else
    {
        // count is odd, simply get the middle element.
        medianValue = …
Run Code Online (Sandbox Code Playgroud)

c# list median

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

属性模式有哪些优缺点?

Steve Yegge 在他的博客文章中描述了属性模式.

对于使用C#或Java等静态语言的人来说,这种方法有哪些优点和缺点?在什么样的项目中你想要使用属性模式,什么时候你想避免它?

design-patterns

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

实体框架映射视图和表之间的关联

我可以直观地映射1:1(一对一)表,如下所示:

但我无法理解如何在表和VIEW之间进行相同的映射,就像这样

在该图中,表示了两个实体.如果我在实体模型中手动创建关联,并设置其映射,如下所示:

然后我得到错误:

错误3021:从第172行开始映射片段中的问题:表view_EmployeeView中的以下每列都映射到多个概念侧属性:view_EmployeeView.EmployeeID映射到Employeesview_EmployeeView.Employees.id,Employeesview_EmployeeView.view_EmployeeView.EmployeeID

为什么我不会在表 - 表关联中得到这个错误?我该如何解决这个问题?我想在视图中放置一些计算信息,但在我需要.Include()函数时显式加入它.

c# entity-framework

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