我正在使用 Something.razor 文件和 Something.razor.cs 文件背后的代码。我的分部类继承自 SomethingBase,而 SomethingBase 本身又继承自 ComponentBase。
然而这会产生错误
CS0115 .buildrendertree(rendertreebuilder)':没有找到合适的方法来覆盖部分类 CS0263 的部分声明,不得指定不同的基类。
但是,如果 Something 直接继承自 ComponentBase 则没有问题。
第一个问题请温柔一点。如果需要的话,我会在早上更新代码和更多细节。
如果我将一个文件中定义的类的核心作为"公共部分"并且我希望在另一个文件中创建对此的添加,那么在我的第二个文件中再次定义"public partial"或仅定义"partial"之间有什么区别? ?
如果我在第二个文件中定义"private partial"会发生什么?
在重构一些C#类时,我遇到了实现IDisposable的类.
我不假思索地为每个实现IDisposable接口的类创建了部分类文件.
例如)对于Stamper.cs - > Stamper.cs + Stamper.Dispose.cs,其中Stamper.cs包含用于标记的实际逻辑和包含dispose逻辑的Stamper.Dispose.cs
// Stamper.cs
public partial class Stamper
{
// actual logic
}
// Stamper.Dispose.cs
public partial class Stamper: IDisposable
{
// Implement IDisposable
}
Run Code Online (Sandbox Code Playgroud)
当我查看代码时,Stamper.cs现在看起来更清晰和可读(现在大约52行而不是100行,其中大约50行只是一个清理处置代码)
我对此走得太远了吗?
*编辑:感谢大家的意见 - 我决定将两个文件放在一起.我遇到的问题是我在更新实际逻辑后实际上忘记更新IDisposable实现.
此外,在源代码中的方法之间导航没有太多问题.第一个原因似乎不仅仅是在我的具体案例中坚持使用一个文件解决方案的理由.
我没有做过很多与.NET的工作,所以如果这有一个简单的解决方案,请原谅我.
"问题"(实际上更令人烦恼)是VC#IDE 默认打开所有具有继承自System.Windows.Forms.Form设计视图的类的文件.唯一的例外是"*.Designer.cs"文件.
一般来说,这很好.但是,如果我有一个partial class实现一些控制处理程序代码,这就变得非常烦人.例如,当双击源文件时,您将被带到Winforms设计器并显示一个空表单.完全没用.
要解决此问题,您需要右键单击相关的源文件,然后从上下文菜单中选择"查看代码".
我的问题很简单:是否有任何一种摆脱这种荒谬的方式?如果没有,我想知道人们如何组织他们的UI处理代码.
谢谢!
我正在创建一个C#库,并将向它公开一个COM接口.
我理解要做的这些步骤,即
[assembly: Guid("dde7717b-2b75-4972-a4eb-b3d040c0a182")][GuidAttribute("4df74b15-d531-4217-af7e-56972e393904")]我的问题是这个.如果我定义了部分类.我是否需要GuidAttribute将这两个类添加到这些类中?
事实上,考虑到这一点,我猜这个问题适用于任何属性(例如Serializable).
任何帮助,将不胜感激.谢谢.
正如我正在使用MusicStore -MVC3(92 PageNo),其中一个POCO类是他们创建的.
public partial class ShoppingCart
{
MusicStoreEntities storeDB = new MusicStoreEntities();
public static ShoppingCart GetCart(HttpContextBase context)
{
var cart = new ShoppingCart();
cart.ShoppingCartId = cart.GetCartId(context);
return cart;
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道我们可以在部分类中访问静态方法吗?IMO,我们无法在部分类中访问静态方法.partial表示类的其他部分将包含在命名空间中.但在这种情况下,我没有得到另一个部分类的实现.1.我们可以在部分类中访问静态方法吗?如果那么怎么样?2.我能否知道这个部分类是如何进入这个音乐商店应用程序的,因为我无法找到其实现的其他部分.
更新:当我搜索models目录中的所有cs文件时,没有其他shoppingCart类.如果有人能告诉我部分实施的位置,那么它会有所帮助.
我需要为一个由模板生成的类注册一个事件处理程序 - 在EntityFramework中的T4模板.
目前,我们编辑了生成的代码,以在生成的类(模型上下文)的构造函数中注册处理程序.
当前代码:
public MyAppContext(string connectionString)
: base(connectionString, ContainerName)
{
this.ContextOptions.LazyLoadingEnabled = true;
// Register the event handler
this.Connection.StateChange += Connection_StateChange;
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果将来重新生成代码,那么上面的代码将被破坏,事件处理程序将不再被连接......
代码重新生成从最小的事情自动发生,例如打开EF Designer并在画布上移动表格!因此,我们不要依赖于将自定义代码留在生成的类中.
无论如何我们可以将注册放在一个部分类中,并保持生成的代码不变?
EG是否存在某种事件,一旦调用构造函数,它将始终被触发?
我不确定这是否是正确的方法,如果是这样,请另行通知.
这是一个使用EF 5.x的ASP.Net MVC 4站点
假设您在自己的类库中拥有实体框架.Code Generation Item现已生成所有模型(EF模式的xxx.tt部分)
然后在站点的开发中添加/引用该项目.
您现在可以通过EF访问数据.
现在 - 在站点项目中,我想创建一个我的EF模型的部分类,例如"Users",其中包含一个不在DB中的附加属性.
过去在Web表单项目中,当EF是项目的一部分而不是参考时,我只会创建部分类,一切都会很好; 我的"用户"现在会有一堆其他内容,这些内容与数据库无关,但在"用户"中需要.
我似乎无法在这个MV处于单独项目的MVC项目中使用它.
我试过这样做:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MyTestEntity.Entity;
namespace MyTestMVCSite.Models
{
public partial class Email
{
public string OtherEmail {
get { return "me@myEmail.com"; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过继承EF模型类,如下所示:
public partial class Email : MyTestEntity.Entity.Email
{
public string OtherEmail {
get { return "me@myEmail.com"; }
}
}
Run Code Online (Sandbox Code Playgroud)
我似乎没有做任何事让我访问"OtherEmail"
我真正希望能够做的是为我的一些模型创建一个部分类,然后让这个部分类实现一个接口,这样我就可以将这个接口的实例注入另一个对象而不是重载.
我在说疯狂的废话吗?
我有一个部分类的两部分:
public partial class Class1 : AnotherClass
{
int id;
}
public partial class Class1
{
public void func()
{
//here i need to access the id variable defined in the other part
id = 1; //this instruction raise an error "The name 'id' does not exists in the current context"
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何访问该变量?
这是我的代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public partial class Class1
{
public void method2()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我看到了括号问题的解决方案,但正如你所看到的那样.什么是这个错误的原因可以帮助我吗?我正在使用asp.net 1.1.
partial-classes ×10
c# ×9
.net ×1
asp.net-mvc ×1
blazor ×1
idisposable ×1
refactoring ×1
winforms ×1