gpt4 book ai didi

C# 代码设计 : 1 library, 2 个使用它的项目(但一个只读)

转载 作者:行者123 更新时间:2023-12-04 05:00:55 25 4
gpt4 key购买 nike

想象一下,有3个项目。
一个库和 2 个可执行文件。

这两个程序都使用该库。
项目 1,在其中创建了许多类的实例,并使用序列化程序保存它们。
项目 2,加载它们,但永远不要对它们进行任何更改。

因此,它对于项目 2 应该是只读的,但项目 1 应该可以完全访问它。
我该如何设计?

可以说,库中有这个类:

public string Name { get; private set;} 
public int Age { get; private set;}

public Person(string Name, int Age)
{
this.Name = Name;
this.Age = Age;
}

这对于将其用作只读的项目 2 来说是完美的。

但是对于项目 1 来说非常烦人,因为它只要更改类中的一个属性,就必须创建一个全新的实例。有 2 个属性时不烦人,但有 10 个属性时非常烦人。
当这些值为常量时,项目 2 甚至会很高兴。

设计它的最佳方法是什么?

最佳答案

条件编译可以做到这一点,只需在 Visual Studio 中创建新的构建配置并使用条件编译符号,然后包装所有可写语句,以便它们使用一种配置而不是另一种配置进行编译,例如:

public string Name { 
get;
#if WriteSupport
private set;
#endif
}
public int Age {
get;
#if WriteSupport
private set;
#endif
}

public Person(string Name, int Age)
{
this.Name = Name;
this.Age = Age;
}

关于C# 代码设计 : 1 library, 2 个使用它的项目(但一个只读),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16152091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com