c# - 使用 if 接口(interface)

标签 c# dependency-injection interface

我的 C# 应用程序有 2 个类对象:

public class Alpha
{
    public string IAmCalledAndy {get;set;}
    public int IAmAnExtraField {get;set;}
}

public class Beta
{
    public string IAmCalledJohn {get;set;}
}

我还有2个方法:

public string testMethod1(Alpha myAlphaInstance)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(JsonConvert.SerializeObject(myAlphaInstance));
    return sb.ToString();
}

public string testMethod2(Beta myBetaInstance)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(JsonConvert.SerializeObject(myBetaInstance));
    return sb.ToString();
}

我想(对于整理和重构只有一种方法的情况:

public string testMethodGEneric(iObjectType myObjectInstance)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(JsonConvert.SerializeObject(myBetaInstance));
    return sb.ToString();
}

所以,我明白 Alpha 和 Beta 对象需要从一个名为 iObjectType 的接口(interface)继承,但是 iObjectType 中有什么?

例如,实际上,Alpha 类将包含 Customer 字段,而 Beta 类将包含 Address 字段。

我是不是希望太多了?是否可以在不使它过于复杂的情况下完成,我不妨坚持原来的 2 种方法?

最佳答案

你不需要其他任何东西,你有你的通用功能:

public string testMethodGEneric(object instance)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(JsonConvert.SerializeObject(instance));
    return sb.ToString();
}

JsonConvert.SerializeObject 已经在接受对象类型。

关于c# - 使用 if 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33891043/

相关文章:

c# - 在 asp.net core : Circular dependency problem 的 dbcontext 中播种用户和角色

javascript - 有什么办法可以解决 Typescript 在某些范围内卡住对象而不是其他范围内的倾向吗?

iPhone Deck 游戏界面

java - 了解 Java 转换器接口(interface)

c# - 是否可以读取实习生池中的所有字符串?

c# - 如何将现有的 sendgrid 帐户链接到 Azure

c# - 用简单的注入(inject)器替换 Ninject

java - 如何在 Spring 中使用 @ComponentScan 懒惰地加载所有 bean?

c# - 我应该先用 C# 编写然后移植到 Web 吗?

c# - EFCode First Property Null 问题