有没有一种简单的方法可以将 T 类型的字段/属性重构为 Lazy,并替换该字段的所有用法以使用 FieldName.Value 代替?
我有一个控制器,其中包含一堆存储在私有支持字段中的依赖项,但是在任何给定的函数调用中只需要一些依赖项。为了加快这个控制器的构建,我想让所有的依赖都变得懒惰,但这只是一个令人讨厌的手工工作量。有什么建议吗?
有没有一种简单的方法可以将 T 类型的字段/属性重构为 Lazy,并替换该字段的所有用法以使用 FieldName.Value 代替?
我有一个控制器,其中包含一堆存储在私有支持字段中的依赖项,但是在任何给定的函数调用中只需要一些依赖项。为了加快这个控制器的构建,我想让所有的依赖都变得懒惰,但这只是一个令人讨厌的手工工作量。有什么建议吗?
Tools
>Create GUID
Resharper
> Refactor
>Rename
Foo => Foo_299E4ADB-5770-458C-B030-E40E19B0FFAF
Edit
> Find and Replace
>Replace in Files
_299E4ADB-5770-458C-B030-E40E19B0FFAF => .值
如果你以前有,
public class LazyClass
{
// initialized in constructor etc.
public MyType MyTypeProperty { get; set; }
}
然后您可以使其延迟加载,而不会影响调用者,如下所示:
public class LazyClass
{
private Lazy<MyType> myType = new Lazy<MyType>(() => new MyType());
public MyType MyTypeProperty
{
get { return this.myType.Value; }
}
}
我怀疑 Resharper 是否内置了这种重构。无论如何,您不希望所有调用者都知道它是 Lazy 并将其称为LazyType.Value
. 不要暴露 Lazy 类型。