Tag: inheritance

ServiceBehavior属性是否由其他类inheritance?

我有几个WCF服务,这些服务共享一些常用方法。 所以,我用这些方法创建了一个基类(不是WCF服务),并使所有WCF服务都从这个类inheritance。 像这样的东西: [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerCall)] public abstract class BaseService 并且其中一个WCF服务: public class ExampleService : BaseService, IExampleService { 我正在使用ServiceBehavior属性来设置ConcurrencyMode和InstanceContextMode值,我的问题是:使用ServiceBehavior属性标记基类是正确的,并期望所有服务inheritanceServiceBehavior属性的值,或者我应该标记所有WCF服务一个接一个?

如何在C#中评论/记录覆盖?

有时我会覆盖基类中的方法。 有时我甚至用空方法覆盖它们,因为我想要的是防止这种行为。 在过去,我会写这样的东西来表明绕过基本方法的意图 : protected override void OnMouseUp(MouseEventArgs e) { // base.OnMouseUp(e); } (我知道注释的代码行是一件坏事。我曾经这么做过) 但我想做得更好: 如何记录覆盖的意图? 特别: 我在override的XML ( ?) 文档中写了什么?

C#将通用子类型转换为父类

假设我们有以下类型: class A {} class B : A {} class X {} 为什么我们不能这样做? X var = new X(); 有没有可用的解决方法? [编辑]我试图使用协方差,但它失败了,因为我想访问X中类型为T的属性,C#不允许在接口中使用类型T: interface IX { T sth {set; get;} } class X: IX { T sth { set; get; } } [编辑2]我也尝试了这个但它失败了: class X where T : A { public T sth { set; get; } public […]

如何同时为C#类分配多个名称

有没有一种方法可以为C#类赋予多个名称,例如: Foo {} class AlternativeFooName是指Foo 我希望能够通过两个名称,Foo和AlternativeFooName访问Foo,但不必从Fooinheritance。 对此应用程序将为类提供一个长描述性名称,但在使用时可以缩写它,例如: 而不是Foo f = new Foo(); 能够使用具有相同效果的以下内容:F f = new F();

如何从子类添加属性到基类的字段?

基类: public class XmlNameValueField : XmlBaseField { [XmlAttribute(“n”)] [Required] public string Name { get; set; } [XmlText] public string Value { get; set; } } 儿童class: public class DateField : XmlNameValueField { } 在Child类字段中,Name必须具有其他属性 [DataType (DataType.EmailAddress)]

我可以让我的类在运行时inheritance自另一个类吗?

我有一个类(人),它是我的MVVM应用程序中的模型。 我想将此类保存到Azure表存储。 要保存到Azure表存储,您需要从名为TableServiceEntity的类派生。 我宁愿不要将我的优秀课程与用于存储的属性混为一谈(考虑分离关注点似乎是一个好主意)。 我可以以某种方式让我的类在运行时派生自TableServiceEntity,在接收对象作为参数的方法中并将其持久存储到存储中吗? 这样可以让我的class级保持清洁存储属性,但仍然让我将它保存到表存储。 谢谢! 安迪

inheritanceLinq to SQL类并转换linq查询的结果

我正在编写一个应用程序,我们需要将基本实体扩展为许多不同的东西(例如员工,车辆等)。 设计是这样的,即存在实体表和具有类型特定值的第二表,例如,雇员将具有ID号但车辆将具有注册号。 我从数据上下文中生成的类实体inheritance,但在我的存储库中进行转换时遇到问题。 这样做的正确方法是什么? public class cAccountEmployee : cAccountEntity { public string id_number { get { try { return this.cAccountEntityValues.Single(e => e.type == 1).value; } catch (Exception) { return “”; } } set { try { this.cAccountEntityValues.Single(e => e.type == 1).value = value; } catch (Exception) { this.cAccountEntityValues.Add(new cAccountEntityValue() { accountentity_id = this.id, cAccountEntity = […]

动态命名空间切换

我正在尝试将Web服务包装器放在几个第三方Web服务上。 为了这个问题,我们将与其中两个合作: OrderService AddressService 这两个服务都具有在不同名称空间中定义的相同对象: OrderService.AuthenticationParameters AddressService.AuthenticationParameters 我希望能够创建一个能够在名称空间之间检测/切换的基类。 例如: public abstract class BaseLogic { internal BaseLogic() { /* Initialize authParams */ //Switch out / detect namespace here this.authParams = new OrderService.AuthenticationParameters(); this.authParams.accountName = “[MyAccountName]”; this.authParams.userName = “[MyUserName]”; this.authParams.password = “[MyPassword]”; } } 我见过几个类似的问题。 要么它们不适用于我的情况,要么我无法理解它们。 问题:我正在努力实现的目标是什么? 如果有可能,我是否过于复杂化? 附加信息:最终,将有两个以上的服务共享此公共对象。 供应商为它们提供的每个function分支提供单独的服务URL。

C#代码,用于设置远程共享以从其父目录inheritance权限

我在Windows域中有两台计算机,称为客户端和服务器。 服务器有一个共享目录,可以从客户端计算机访问。 我想在客户端上运行C#应用程序,该应用程序设置此共享的权限以inheritance服务器上共享的父目录的权限。 我该怎么做呢? 我已尝试过以下几行代码,但我认为它没有正确的效果: DirectoryInfo shareDirectoryInfo = new DirectoryInfo(“\\server\share”); DirectorySecurity directorySecurity = shareDirectoryInfo.GetAccessControl(); directorySecurity.SetAccessRuleProtection(false, false); InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule accessRule = new FileSystemAccessRule(“Everyone”, FileSystemRights.FullControl, iFlags, PropagationFlags.InheritOnly, AccessControlType.Allow); bool modified; directorySecurity.ModifyAccessRule(AccessControlModification.Set, accessRule, out modified); if (modified) { Directory.SetAccessControl(name, directorySecurity); } 我想我不明白为什么我必须为目录创建一个FileSystemAccessRule – 我怎么能说从父进行inheritance呢? 谢谢你的帮助! 马丁

从父类调用重写虚方法

假设您正在编写原始C# Object类,并且您需要以下function: object1 == object2将比较引用,除非重写此运算符 object1 != object2将始终返回对象的ACTUAL对象1 object1 == object2的反转 因此,例如,如果我有一个使用ear length作为其equals方法的Bunny类(派生自Object ),那么如果bunnies具有不同的ear长度,则notequals方法(inheritance自Object )应该返回true。 我看到的问题是,如果我写我的Object类,如下所示: public partial class Object { public virtual bool Equals(Object o2) { return (this === o2); } public bool NotEquals(Object o2) { return !this.Equals(o2); } } 那么看起来这个定义会将NotEquals绑定到Object的Equals,而不是实际派生类的equals。 有没有什么方法可以在不修改C#本身的情况下工作? 我并不在乎C#中的这种可能性,但我关心是否有一些OOP原则告诉我我不应该期望这种事情能起作用。 此外,我不确定这是否是这个问题的基础,但是想法是NotEquals也是虚拟的,所以它也可以被希望它们的o1 != o2不同的派生类所覆盖!(o1 == o2) 。 这个问题的灵感来自最近的讨论 。