小编dan*_*oks的帖子

在C#中运行时加载DLL

我试图找出如何在C#应用程序中运行时导入和使用.dll.使用Assembly.LoadFile()我设法让我的程序加载dll(这部分肯定是有效的,因为我能够获得带有ToString()的类的名称),但是我无法使用'输出'我的控制台应用程序内的方法.我正在编译.dll然后将其移动到我的控制台项目中.CreateInstance之间是否有额外的步骤,然后能够使用这些方法?

这是我的DLL中的类:

namespace DLL
{
    using System;

    public class Class1
    {
        public void Output(string s)
        {
            Console.WriteLine(s);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我想要加载DLL的应用程序

namespace ConsoleApplication1
{
    using System;
    using System.Reflection;

    class Program
    {
        static void Main(string[] args)
        {
            var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll");

            foreach(Type type in DLL.GetExportedTypes())
            {
                var c = Activator.CreateInstance(type);
                c.Output(@"Hello");
            }

            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# reflection dll

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

获取GitLab CI以克隆私有存储库

我设置了GitLab和GitLab CI来托管和测试我的一些私人回购.对于我在这个系统下的作曲家模块,我设置了Satis来解析我的私人包.

显然这些私有包需要一个ssh密钥来克隆它们,我在终端中工作 - 我可以运行composer install并获取这些包,只要我ssh-add在shell中添加了密钥.

但是,当在GitLab CI中运行我的测试时,如果项目具有任何这些依赖项,则测试将无法完成,因为我的GitLab实例需要身份验证才能获得deps(显然),并且测试失败了Host key verification failed.

我的问题是如何设置它以便当跑步者运行测试时它可以在没有密码的情况下对gitlab进行身份验证?我已经尝试在我的runners ~/.ssh文件夹中放置一个无密码的ssh-key ,但是构建甚至不会添加密钥,"eval ssh-agent -s"后面跟ssh-add似乎没有说代理没有运行...

ssh continuous-integration gitlab gitlab-ci gitlab-ci-runner

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

Haskell - 操纵/扩展不受您控制的ADT

操纵/扩展不受您控制的ADT的最佳方法是什么?(即来自依赖)

是与我的问题相关的数据类型:

我想维护数据的结构,但添加额外的数据(即添加另一种类型),但结构本身不在我的控制之下.我是否必须将数据映射到我自己的此定义版本?

例如,对于结构中的所有段落,我想Para成为Para [Inline] [String]其中[String]的段落所包含的单词的列表(它自己的数据结构).

我通过端点将这些数据作为JSON提供,我认为我可以解决的一种方法是定义我自己的ToJSON实例,并在Para那里执行此转换,但是我无法覆盖实例,因为它已经定义了!我愿意接受一个实际上并没有触及Para类型本身的解决方案,我只需要一种方法来结合更多数据而Para不会丢失任何完整Pandoc文档的结构.

haskell pandoc

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

Silverstripe - 在模板中循环非关联数组

如何在模板内完成?我用ArrayData使用模板循环中的键来访问模板中的值,但是如果我有一个没有键的任意字符串数组,我用什么变量来访问这些值?

如果在我的控制器中我有这个:

public function ArrayList()
{
    $ArrayList = new ArrayList(array('this', 'is', 'a', 'test'));
    return $ArrayList;
}
Run Code Online (Sandbox Code Playgroud)

这在我的模板中:

<% loop $ArrayList %>1<% end_loop %>
Run Code Online (Sandbox Code Playgroud)

为了让模板吐出"这是一个测试",我应该用1来代替1?

php silverstripe

9
推荐指数
2
解决办法
7258
查看次数

SQL Server存储过程返回一个boolean if表存在,c#implementation

我创建了一个存储过程,它接受一个参数,一个表的名称,如果数据库中存在则返回1,否则返回0.在SQL Server Management Studio测试中,我的存储过程完全按照我的意愿工作,但是我无法在C#程序中使用该值.

我的选择似乎是ExecuteScalar(),ExecuteNonQuery()或者ExecuteReader(),似乎都不适合任务,也不能让他们甚至检索我的存储过程的结果.

我已经尝试用两者分配我的参数cmd.Parameters.AddWithValuecmd.Parameters.Add再次无效.

c# sql-server stored-procedures

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

一套快速检查测试与实现相匹配是好还是坏?

我正在尝试使用Haskell的QuickCheck,虽然我熟悉测试方法背后的概念,但这是我第一次尝试将它用于一个超出测试类似的项目的那个项目reverse . reverse == id.事情.我想知道将它应用于业务逻辑是否有用(我认为非常可能).

因此,我想测试的几个现有业务逻辑类型函数如下所示:

shouldDiscountProduct :: User -> Product -> Bool
shouldDiscountProduct user product =
  if M.isNothing (userDiscountCode user)
     then False
     else if (productDiscount product) then True
                                       else False
Run Code Online (Sandbox Code Playgroud)

对于此功能,我可以编写如下的QuickCheck规范:

data ShouldDiscountProductParams
  = ShouldDiscountProductParams User Product

instance Show ShouldDiscountProductParams where
  show (ShouldDiscountProductParams u p) =
    "ShouldDiscountProductParams:\n\n" <>
    "- " <> show u <> "\n\n" <>
    "- " <> show p

instance Arbitrary ShouldDiscountProductParams where
  arbitrary = ShouldDiscountProductParams <$> arbitrary <*> arbitrary

shouldDiscountProduct :: Spec
shouldDiscountProduct = …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming business-logic quickcheck property-based-testing

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

如何在MVVM中管理多个窗口

我知道有几个与此问题类似的问题,但是我还没有找到确切的答案。我正在尝试使用MVVM,并尽可能保持纯净,但不确定在遵循模式的情况下如何精确启动/关闭窗口。

我最初的想法是将数据绑定到ViewModel触发代码的命令以启动新的View,然后将View的DataContext通过XAML设置为ViewModel。但是我认为这违反了纯MVVM ...

经过一番谷歌搜索/阅读答案之后,我遇到了a的概念WindowManager(例如在CaliburnMicro中),现在,如果我要在香草MVVM项目中实现其中一个,那么ViewModels可以加入吗?还是只是我应用程序的核心?我目前正在将我的项目分为一个Model程序集/项目,ViewModel程序集/项目和View程序集/项目。是否应该将其放入不同的“核心”程序集中?

这就引出了我的下一个问题(与上述情况有些相关),如何从MVVM的角度启动应用程序?最初,我将从App.xaml启动MainView.xaml,XAML中的DataContext将附加分配的ViewModel。如果添加WindowManager,这是我的应用程序启动的第一件事吗?我是从后面的代码执行此操作的App.xaml.cs吗?

c# wpf xaml mvvm

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

"IO`'s >>究竟是如何在引擎盖下工作的?

在向Monad初学者解释像s 这样的概念时,我认为避免任何复杂的Haskell术语或任何类别理论都是有帮助的.我认为解释它的一个很好的方法是为这个函数建立一个动机,a -> m b如下所示Maybe:

data Maybe = Just a | Nothing
Run Code Online (Sandbox Code Playgroud)

这是全有或全无.但是,如果我们有一些功能f :: a -> Maybe b并且g :: b -> Maybe c我们想要一种很好的方法来组合它们呢?

andThen :: Maybe a -> (a -> Maybe b) -> Maybe b
andThen Nothing _ = Nothing
andThen (Just a) f = f a

comp :: Maybe Text
comp = f a `andThen` g
  where f g a = etc...
Run Code Online (Sandbox Code Playgroud)

然后你可以进入说andThen可以为各种类型定义(最终形成monad类型类)......对我来说,一个引人注目的下一个例子就是IO.但是你会如何andThen为 …

io monads haskell

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

C# - 没有从'T'到'System.IComparable <T>'的隐式引用转换

我从另一个SO问题中选择了以下课程:

    public class Range<T> where T : IComparable<T>
    {
        public T Minimum { get; set; }
        public T Maximum { get; set; }

        public override string ToString() { return String.Format("[{0} - {1}]", Minimum, Maximum); }

        public Boolean IsValid() { return Minimum.CompareTo(Maximum) <= 0; }

        public Boolean ContainsValue(T value)
        {
            return (Minimum.CompareTo(value) <= 0) && (value.CompareTo(Maximum) <= 0);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我想创建另一个包含此类的许多实例的类,并且可以对它们执行foreach循环,如果传递的数字包含在任何一个范围中,则返回true:

    public class Ranges<T> where T : Range<T>
    {
        private List<Range<T>> rangelist;

        public void add(Range<T> range)
        {
            rangelist.Add(range);
        }

        public Boolean …
Run Code Online (Sandbox Code Playgroud)

c# generics

4
推荐指数
2
解决办法
9675
查看次数

从无网址(即主页)路由到操作

我目前正在开发一个仅框架项目,我的路由设置如下:

---
Name: app
After: 'framework/routes'
---
Director:
  rules:
    '$Action/$ID/$OtherID': 'MainController'
Run Code Online (Sandbox Code Playgroud)

我的控制器是这样的:

<?php

class MainController extends Controller {

    static $allowed_actions = array('build');

    public function init() {
        parent::init();
    }

    public function index() {
        echo $this->Action;
        die;
    }

    public function build(){
        echo 'build';
        die;
    }
Run Code Online (Sandbox Code Playgroud)

index当我去的时候网站总是吐出来/build然而访问/adadsa/build会给我想要的回声结果build,如何设置我的路由到我的控制器/显示的URL index,并/build显示构建的结果?

silverstripe

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