小编Roo*_*ian的帖子

最佳实践方法用于逆向工程VB6代码,不知道域

目标状态:将VB6代码移植到C#中,使用所有可能的流程进行整个项目.

如果您不了解域名,您的方法是什么?

几乎所有文档,只有遗留代码(高达100.000 - 300.000行代码和注释vb6文件,包含多达14.000行代码)用VB6编写.

c# vb6 legacy dns reverse-engineering

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

如何使用动态对象类型创建通用List

我想创建一个Type对象的通用列表.

我有 ...

Type type = typeof(Foo);
object model = GetModel();
Run Code Online (Sandbox Code Playgroud)

现在我要创建一个 new List<Foo>((Foo)model)

这可能在C#中吗?

c# generics list dynamic

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

C#原始类型或复杂类型作为方法签名?

使用Primitve类型或复杂类型有哪些优缺点?

什么时候应该使用复杂类型的原始类型,反之亦然?

即:

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public int IQ { get; set; }
}


public void FooPrimitiveTypes (string firstName, string lastName, int age, int IQ)
{

}

public void FooComplexTypes(Person person)
{

}
Run Code Online (Sandbox Code Playgroud)

c# primitive-types complextype

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

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

为什么Entity Framework会检测已修改但重置的属性的更改?

如果我修改POCO实体的属性,但重置它,EntityFramework仍然表示存在更改.

Property "Name": Value "Test" (original value) 
              -> Value "Test123" (value changed by UI) 
              -> Value "Test" (value changed by UI to original value)
Run Code Online (Sandbox Code Playgroud)

已修改的条目:

var objectStateEntries = 
    _db.ObjectStateManager.GetObjectStateEntries(
        EntityState.Added | 
        EntityState.Deleted | 
        EntityState.Modified);
Run Code Online (Sandbox Code Playgroud)

你怎么处理这个案子?

c# entity-framework change-tracking objectstatemanager entity-framework-4

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

如何在 Ninject 中使用“复合设计模式”

验证规则合约:

public interface IValidationRule
{
    bool IsValid();
}
Run Code Online (Sandbox Code Playgroud)

具体验证规则:

public class MyClass : IValidationRule
{
    public bool IsValid()
    {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

合成的:

public class ValidationRuleComposite : IValidationRule
{
    private readonly IEnumerable<IValidationRule> _validationRules;

    public ValidationRuleComposite(IEnumerable<IValidationRule> validationRules)
    {
        _validationRules = validationRules;
    }

    public bool IsValid()
    {
        return _validationRules.All(x => x.IsValid());
    }
}
Run Code Online (Sandbox Code Playgroud)

当我向容器询问时,IValidationRule我想得到ValidationRuleComposite. 如果我向容器询问IValidationRule我想要获取IValidationRuleValidationRuleComposite.

我如何使用 Ninject 实现这一目标?

c# dependency-injection ninject composite ioc-container

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

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

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

C#重构:除了使用不同的接口外,你将如何重构2个相同的方法

必须拥有2个不同的接口.

你会如何重构这个?

我应该重构这个代码吗?

private void CreateInstanceForProviderA()
{
    a = FactorySingleton.Instance.CreateInstanceA("A");

    if (a == null)
    {
        ShowProviderNotInstanciatedMessage();
        return;
    }

    a.Owner = Handle.ToInt32();
    lbl_Text.Text = a.Version();
}

private void CreateInstanceForProviderB()
{
    b = FactorySingleton.Instance.CreateInstanceB("B");

    if (b == null)
    {
        ShowProviderNotInstanciatedMessage();
        return;
    }

    b.Owner = Handle.ToInt32();
    lbl_Text.Text = b.Version();
}
Run Code Online (Sandbox Code Playgroud)

如果有一个通用接口,我可以写:

private void CreateInstanceForProvider(string provider)
{

    p = FactorySingleton.Instance.CreateInstanceB(provider);
    // p is shared over the whole class
    if (p == null)
    {
        ShowProviderNotInstanciatedMessage();
        return;
    }

    var tmpProvider = p as ICommonProvider;

    tmpProvider .Owner …
Run Code Online (Sandbox Code Playgroud)

c# refactoring

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

为什么DataGridView采用Windows窗体的字体?

当我设置Form的Font时,DataGridView采用相同的字体.

为什么DataGridView采用表单的字体?

c# datagridview winforms

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