标签: partial-classes

部分类 - Visual Studio 2008

是否有可能创建在解决方案资源管理器中分组的部分类,如VS使用类后面的代码(例如,Default.aspxDefault.aspx.cs).

我想创建MyClass.csMyClass.partial.cs,它们不应该在解决方案资源管理器中显示为2个单独的文件.

partial-classes visual-studio-2008

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

在泛型类上使用"partial"

嘿伙计们,
我正在使用一个叫做ViewModelCollection<BaseViewModel>处理ViewModel列表并提供标准add()delete()命令的泛型类.

现在我想知道我是否可以使用partial某个ViewModel 的构造"扩展"这个类,其名称是,例如CarViewModel.

这样的事情可能吗?

partial class ViewModelCollection<BaseViewModel>
{
    ... some command and list stuff ...
}

partial class ViewModelCollection<CarViewModel>
{
    ... special commands for car view model
}
Run Code Online (Sandbox Code Playgroud)

c# generics partial-classes

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

是否有可能像C#一样提供javascript部分类行为或者像Ruby那样提供猴子补丁?

部分类背后的想法是你可以将某些功能组合在一起.C#中最好的例子是将控件定义放在一个文件中,将事件处理程序放在另一个文件中.在Ruby中,您可以使用Monkey修补来替换整个函数等,以获取代码来执行您想要的操作.

我还没有找到理由这样做,但我认为随着网络的改进,更多的应用程序将在客户端,所以我想知道我在服务器端语言中找到的一些很棒的功能,我也可以在Javascript中使用.

有人知道吗?

javascript monkeypatching partial-classes

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

未调用FluentValidation验证程序

我有一个MVC 3站点,但我正在使用非MVC FluentValidation dll.我已经创建了一个验证器类,并在构造函数中放置了所有的RuleFors,然后在我的模型类上设置了一个属性

[FluentValidation.Attributes.Validator(typeof(MyValidator))]
Run Code Online (Sandbox Code Playgroud)

问题是验证器类上的构造函数永远不会被调用.我想这可能是因为我没有使用dll的MVC版本,但后来我也无法让这个版本适用于我.

任何帮助,将不胜感激.

谢谢,

萨钦

partial-classes entity-framework-4 fluentvalidation asp.net-mvc-3

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

向实体添加新构造函数

我正在使用EF4.3.这是我的第一个项目,所以我一直在学习.

有些情况下我需要为实体建立额外的构造函数.我创建了一个额外的部分类来执行此操作,因此实体用户将具有关联的类User2.

我注意到EF总体上不会创建构造函数,但是有这样的实例:

public partial class User
{
    public User()
    {
        this.BookmarkedDeals = new HashSet<BookmarkedDeal>();
        this.BookmarkedStores = new HashSet<BookmarkedStore>();
    }

    public System.Guid UserId { get; set; }
    public int UserStatusId { get; set; }
    public int UserRoleId { get; set; }
    public System.DateTime CreatedOn { get; set; }
    public System.DateTime LastVisitedOn { get; set; }

    public virtual ICollection<BookmarkedDeal> BookmarkedDeals { get; set; }
    public virtual ICollection<BookmarkedStore> BookmarkedStores { get; set; }
    public virtual Subscriber Subscriber { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework partial-classes

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

指南 - 扩展方法与部分类

我们正在讨论为工作定义实体类方法的最佳方法 - 作为扩展方法或使用部分类.我们谈论的那种方法不会修改实体的状态,它们纯粹是"帮助"方法,它们询问状态并返回一个值.

这两种方法的主要好处是保持实体类清洁,同时仍然为客户端代码提供intellisense支持.

无论是哪种方式,我都没有强烈的偏好,但我很想知道其他人是否对某一方有偏好(或知道有记录的指导方针).

我开始编写我能想到的每种方法的优点列表,但最后我想出的是:

部分类

  • 方法定义位于类中(即使它是另一个文件),因此Visual Studio工具支持"查找方法"(例如,resharper中的ALT- \)将定位方法

  • 一旦由于使用partial关键字打开实体类,包含辅助方法的其他文件的存在就很明显

扩展方法

  • 文件的命名("entityNameExtension")及其在项目中的位置(在"Extensions"子文件夹中)直观且易于搜索

其他人可以加入他们的意见吗?

PS我不认为这是以下问题的重复,因为该问题的提问者满足于标记一个响应,该响应将功能差异概述为正确答案,而不回答关于哪种方法是最佳实践的问题在这种情况下: 部分类与扩展方法

编辑 - 我正在寻求人们对一种方法或另一种方法的偏好,因为我们无法找到针对此特定方案的文档指南.这两种方法都是可能的,既不违反任何设计原则,所以这是一个偏好的问题,我想知道你的.

c# extension-methods partial-classes

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

不能抽象替换部分?

到目前为止,我看到的部分类的最大论点是自动生成的代码.

从Java的角度来说,我不明白为什么这不能简单地使用抽象类完成,不能自动生成的代码仅仅是一个抽象类protected abstract,它预计用户覆盖的方法呢?

除了自动生成的代码案例之外,我看到的每一个案例都非常罕见(编码器只是partial用作黑客),或者它也可以使用abstract已经存在的其他概念来解决.

c# abstract-class partial-classes

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

部分类/部分方法与基础/继承类

关于班级设计的问题.目前我有以下结构:

抽象基本存储库类

默认存储库实现类(实现一些抽象方法,其中逻辑通过所有特定类,但保留其他空)

特定的Repository实现类(实现上面的Default类中的空白)

我现在遇到了一个问题,我在Specific类中有一个特定的Update()方法,但是当这个方法中的所有代码都执行一些来自基类的代码时,也应该执行Default类.

我可以这样做

public override Update()
{
    // do Specific class actions and updates
    // ....

    // follow with base.Update()
    base.Update();
}
Run Code Online (Sandbox Code Playgroud)

但是这需要在所有继承的方法中调用base.XYZ().我能以某种方式解决这个问题吗?

因此,要求是在父类和继承类中都有代码(或者使用partial来使这两个类成为一个类),并且应该执行两个地方的方法实现中的代码.另外,如果我想转而执行基类代码,然后继承类代码呢?

谢谢

.net c# inheritance partial-classes

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

ColdFusion CFC实现C#Partial Class?

ColdFusion是否提供将CFC拆分为多个文件的机制?我不是在谈论扩展,我在谈论将SAME CFC拆分成多个文件; 与C#允许"部分"类相同的方式.这是因为我使用T4生成一堆CFC,我希望能够通过在另一个文件中将功能标记到生成的CFC上.我想以不违反开放原则的方式这样做.

asp.net coldfusion cfc partial-classes createobject

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

为引用的程序集创建分部类

可能重复:
是否可以在两个项目中声明一个分部类

说在我的项目解决方案中,我有两个项目,ProjectA和ProjectB.ProjectA创建:MyClassA

然后ProjectB引用了ProjectA.是否可以在ProjectB中为ProjectA的MyClassA创建部分类?

我的项目A的MyClassA:

namespace TestPartial
{
    public class MyClassA
    {
        public string MyName { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的项目B的MyClassB:

namespace TestPartial
{
    public partial class MyClassA
    {
        public DateTime BirthDate { get; set; }
    }

}
Run Code Online (Sandbox Code Playgroud)

但显然这两个属性都没有合并....所以我想只有它们只在同一个项目中才能工作?或者有一些解决方法吗?

c# partial-classes

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