我有以下VB.NET类定义:
<Serializable()> Partial Public Class Customers
End Class
Run Code Online (Sandbox Code Playgroud)
在另一个文件中我有相同的东西(当然有不同的方法和变量).当我编译时,我收到以下错误:
属性'SerializableAttribute'不能多次应用.
这个错误非常自我解释.我的问题是,如果我只将一个类标记为Serializable(),我可以假设整个类被标记为serializable()吗?换句话说,我只需要在类中的1个位置使用serializable()标记吗?
什么时候将你的班级分成两个.cs并将其作为一个部分类?
是否有迹象显示是时候进行部分课程了?
谢谢!
我为网页创建了两个部分类.
现在我已经给出了一个函数的定义,说我在调用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) 我需要扩展我的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) 这是我的服务生成类:
public partial class MyClass : object,
System.Runtime.Serialization.IExtensibleDataObject,
System.ComponentModel.INotifyPropertyChanged
{ }
Run Code Online (Sandbox Code Playgroud)
我正在使用自己的服务.在MyClass我已经被覆盖ToString()但我没有在我的客户端.我要么要生成它,要么MyClass部分我能够覆盖ToString自己?
我知道我可以用生成的.cs文件写.什么是最好的方法,我应该做什么?
有没有办法找出类是否partial在 Roslyn 分析器内?有一个PartialImplementationPartin IMethodSymbol,但没有类似的 for INamedTypeSymbol。
我正在编写一个源生成器,并且仅在可能的情况下才生成该类的第二部分(如果第一部分是部分的)。
c# partial-classes roslyn-code-analysis csharp-source-generator
我定义了一个类:
public class Sample{
public string name {get;set;}
public int price {get;set}
}
Run Code Online (Sandbox Code Playgroud)
然后
Sample sampleA = new Sample();
sampleA.name = "test";
Sample sampleB = new Sample();
sampleB.price = 100;
Run Code Online (Sandbox Code Playgroud)
我这样做是因为我将JSONed sampleA和JSONed sampleB保存到Azure表,以呈现完整的示例对象.在其他代码中,有时只需要名称,有时只需要价格,所以我只需要提取每次需要的数据.当然,在实际代码中,样本的结构要复杂得多.
我的问题是:是否有任何简单的方法可以做到:
Sample sampleC = sampleA + sampleB;
Run Code Online (Sandbox Code Playgroud)
和sampleC应包含:
sampleC.name = "test";
sampleC.price = 100;
Run Code Online (Sandbox Code Playgroud) 我有一个自动生成的类来导入包含这样的(缩写)的web服务:
[System.Runtime.Serialization.DataMemberAttribute()]
public System.DateTime StartDate
{
get
{
return this.StartDateField;
}
set { /* implementation prop changed */ }
}
Run Code Online (Sandbox Code Playgroud)
我想为此成员添加MVC格式属性.所以在另一个包含相同partial class定义的文件中,我想做类似以下的事情(这是非法的):
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime StartDate;
Run Code Online (Sandbox Code Playgroud)
部分方法在这里没有用,因为部分方法必须是私有的,具有void返回类型,必须是方法等等.
我该如何装饰这个会员?
我正在阅读有关Partial关键字的MSDN文章,这部分引起了我的注意:
partial关键字表示可以在命名空间中定义类,结构或接口的其他部分.所有部分都必须使用partial关键字.所有部件必须在编译时可用,以形成最终类型.所有部件必须具有相同的可访问性,例如public,private等.
[...]
指定基类的所有部分必须一致,但省略基类的部分仍然继承基类型.部件可以指定不同的基接口,最终类型实现所有部分声明列出的所有接口.在部分定义中声明的任何类,结构或接口成员都可用于所有其他部分.最后的类型是编译时所有部分的组合.
关于这个概念我有两个问题:
首先,似乎这是一种绕过C#中缺少多重继承的方法(当然除了接口).除了正常的多重继承问题,例如钻石问题,这样做是否会产生任何影响?基本上,仅仅因为我可以,这是否意味着我应该?
其次,我什么时候应该拆分文件?通过阅读本文,我觉得我应该能够在自己的文件中声明一个嵌套类,并将其与包含的类一起分开,从而提高可读性.这是Partial的要点,还是仅应按照上述文章中的描述使用?
在实体框架(数据库优先)中,我试图向创建的类添加一些数据注释.
一般来说:我创建了类X:
namespace Info
{
using System;
using System.Collections.Generic;
public partial class X
{
public string SomeProperty {get; set;}
...
}
}
Run Code Online (Sandbox Code Playgroud)
我希望SomeProperty在序列化为JSON时忽略属性,因此在App_Code/Metadata创建类X.cs时我添加了一些MetaData:
namespace Info
{
public class XMetaData
{
[JsonIgnore]
public string SomeProperty{get; set;}
}
[MetadataType(typeof(XMetaData))]
public partial class X
{
}
}
Run Code Online (Sandbox Code Playgroud)
上面我手动更改了命名空间,Info.App_Code.Metadata以Info使部分类匹配.
但是在我使用X类的所有地方我都有警告
The type Info.X in '.../Info/App_Code/Metadata/X.cs ' conflicts with the imported type Info.X in '.../Info/X.cs'. Using the type defined in '.../Info/App_Code/Metadata/X.cs '
我期望两个部分类都将被合并,但是所有出现都是指那个空的X类.
有人知道我错过了什么吗?
c# ×10
partial-classes ×10
.net ×3
asp.net ×2
asp.net-mvc ×1
attributes ×1
json ×1
oracle ×1
vb.net ×1
wcf ×1