标签: partial-classes

LINQ to SQL - 使用部分类和方法扩展数据上下文时编译错误

我试图使用我的datacontext.designer.cs文件中的扩展性方法定义来进行一些验证.

所以我创建了一个新文件并添加了这段代码:

public partial class LawEnforcementDataContext : System.Data.Linq.DataContext
{

    partial void InsertCourse(Course instance) // this definition copied from generated file
    {
        ValidateCourse(instance);
        this.ExecuteDynamicInsert(instance);
    }

    partial void UpdateCourse(Course instance) // this definition copied from generated file
    {
        ValidateCourse(instance);
        this.ExecuteDynamicUpdate(instance);
    }

    private void ValidateCourse(Course instance)
    {
        if (instance.StartDate > instance.EndDate)
        {
            throw new ApplicationException("Start date cannot be later than end date.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我因为这些错误而无法编译:

Error   1   No defining declaration found for implementing declaration of partial method 'LawEnforcementDataContext.InsertCourse(reservation.lawenforcement.Course)'
Error   2   No defining …
Run Code Online (Sandbox Code Playgroud)

c# linq oop partial-classes linq-to-sql

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

.NET部分类与继承

好的,所以我们内部有一个实用工具,可以从我们的数据库表和视图中生成业务模型类,类似于(但不完全像)ORM.在维护它时,我发现模式中的数据可能不会发生很大的变化.但是,功能可能会.我们可能希望在未来添加其他功能.我们可能想要生成一些功能,我们可能想要扩展它.

我们正在构建的类将驻留在类库中,供其他库和应用程序使用.那里没什么大惊喜.但这里的难点是如何设计生成的类,以便在重新生成类时尽可能少地破坏代码.例如,如果代码已添加到属性(表示数据库表中的列),我们不希望丢失它.

因此,有两种方法可以想到:

经典继承,整个过程在一个"单片"类中完成,消费者可以自由地覆盖基础实现.然而,这有时会变得棘手,并经常引入铸造头痛.此外,如果派生类不小心并忘记调用基类功能,事情很快就会出错.

部分课程.在此方案中,我们将业务对象分成不同的部分:属性(映射到列)和行为.行为甚至可以进一步细分为生成的行为和自定义行为.正如您所看到的,这种方法的问题在于其固有的复杂性.此外,还有命名问题.

以下是我的问题:当你处理这样的场景时(如果有的话),或者如果你遇到这样的场景,你会考虑哪些解决方案,为什么?

.net partial-classes

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

部分类跨越程序集

在我的框架项目中,我有一个表示内容管理系统中的选项卡的类.在某些framewrok实现中,需要使用特定于该实现的选项卡的定义来扩展此类.我通过将CmsTabs类更改为部分来实现此目的,如下所示:

namespace Framework
{
/// <summary>
/// Class containing common CMS Tab names
/// </summary>
public static partial class CmsTab
{
    /// <summary>
    /// Information Tab
    /// </summary>
    public const string Information = "Information";
Run Code Online (Sandbox Code Playgroud)

然后在实现框架的程序集中创建一个具有相同名称和命名空间的类.

但是,当我构建框架程序集时,CmsTabs类似乎不再是部分的 - 当我向其添加部分类时,它的成员隐藏在实现程序集中.当在Reflector中反汇编时,我得到了这个:

public class CmsTab
{...
Run Code Online (Sandbox Code Playgroud)

我是否需要做些什么来保持其部分状态,假设可以做我想做的事情.

谢谢.

.net c# partial-classes

7
推荐指数
3
解决办法
4166
查看次数

在部分类之间跳转的快捷方式

是否有在VS2012编辑器中为同一个类的部分类之间跳转的快捷方式?我知道我可以使用搜索,但我希望有一个捷径.

c# partial-classes visual-studio

7
推荐指数
3
解决办法
2897
查看次数

可序列化的部分类

我有以下VB.NET类定义:

<Serializable()> Partial Public Class Customers
End Class
Run Code Online (Sandbox Code Playgroud)

在另一个文件中我有相同的东西(当然有不同的方法和变量).当我编译时,我收到以下错误:

属性'SerializableAttribute'不能多次应用.

这个错误非常自我解释.我的问题是,如果我只将一个类标记为Serializable(),我可以假设整个类被标记为serializable()吗?换句话说,我只需要在类中的1个位置使用serializable()标记吗?

.net c# vb.net asp.net partial-classes

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

在什么条件下有一个"部分类?"是好的?

什么时候将你的班级分成两个.cs并将其作为一个部分类?

是否有迹象显示是时候进行部分课程了?

谢谢!

c# partial-classes

6
推荐指数
3
解决办法
308
查看次数

我可以从另一个分类中调用一个分部类中定义的函数.可能吗?

我为网页创建了两个部分类.

现在我已经给出了一个函数的定义,说我在调用OnSubmit事件按钮时调用submit().

但是这个函数没有被调用,程序没有编译,因为它无法搜索函数的定义,函数的定义是在另一个分类中定义的.是否可以调用此函数,或者我必须在im调用它的同一文件中给出函数的定义

例如

<%@ Page Language="C#" MasterPageFile="~/Master Pages/LeftMenu.master" AutoEventWireup="true" CodeFile="Registration.aspx.cs" Inherits="Web_Pages_Authentication_Login_Management_Registration" Title="Registration" StylesheetTheme="Default Theme 1"  %>
Run Code Online (Sandbox Code Playgroud)

Registration.aspx.cs

public partial class Web_Pages_Authentication_Login_Management_Registration : System.Web.UI.Page
{
    private string firstName;
    private string lastName;
    private string userName;
    private string userPassword;
    private string primaryEmail;
protected void btnSubmit_Click(object sender, EventArgs e)
    {
       Display();
    }
}
Run Code Online (Sandbox Code Playgroud)

Registration_Database.cs

   public partial class Web_Pages_Authentication_Login_Management_Registration 
    {
       const string dbFirstName = "@FirstName";
       const string dbLastName = "@LastName";
       const string dbUserName= "@UserName";
       const string dbUserPassword = "@UserPassword";
       const string dbPrimaryEmail = "@PrimaryEmail"; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net partial-classes

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

EF 4,如何添加部分类

我需要扩展我的EF部分类,因为我想添加一些功能来使用Oracle的序列,但是我真的不知道如何使用这个部分类的东西,我制作了一个单独的.cs文件并将其命名为一个我的自动生成的类如下:

namespace GlassStoreDAL
{
    public partial class CAR 
    {
        private int _sequences;
        public int sequences
        {
            get { return _sequences; }
            set { _sequences = value; }
        }
    }  
}
Run Code Online (Sandbox Code Playgroud)

现在我认为,在我的BLL上 - 它引用了GlassStoreDAL - 我可以找到我的"序列"属性,但显然出现了问题,我将不胜感激.

这是我生成的部分类,我是否还有序列属性?

[EdmEntityTypeAttribute(NamespaceName="Model", Name="CAR")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class CAR : EntityObject
{
    #region Factory Method
    /// <summary>
    /// Create a new CAR object.
    /// </summary>
    /// <param name="id">Initial value of the ID property.</param>
    public static CAR CreateCAR(global::System.Decimal id)
    {
        CAR cAR = new CAR();
        cAR.ID …
Run Code Online (Sandbox Code Playgroud)

.net c# oracle partial-classes entity-framework-4

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

在WCF服务中覆盖ToString方法

这是我的服务生成类:

public partial class MyClass : object, 
                               System.Runtime.Serialization.IExtensibleDataObject, 
                               System.ComponentModel.INotifyPropertyChanged 
{ }
Run Code Online (Sandbox Code Playgroud)

我正在使用自己的服务.在MyClass我已经被覆盖ToString()但我没有在我的客户端.我要么要生成它,要么MyClass部分我能够覆盖ToString自己?

我知道我可以用生成的.cs文件写.什么是最好的方法,我应该做什么?

.net c# wcf serialization partial-classes

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

Roslyn 分析器:类是否标记为部分

有没有办法找出类是否partial在 Roslyn 分析器内?有一个PartialImplementationPartin IMethodSymbol,但没有类似的 for INamedTypeSymbol

我正在编写一个源生成器,并且仅在可能的情况下才生成该类的第二部分(如果第一部分是部分的)。

c# partial-classes roslyn-code-analysis csharp-source-generator

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