NuGet을 통한 개인 프로젝트에서 타사 오픈 소스 Object Comparer util을 사용하고 있습니다.읽기 전용 정적 속성을 재설정하는 방법은 무엇입니까?
public class Context :
IContext
{
private static Context _default;
public static Context Default {
get {
if(_default==null)
_default = GetDefaultContext();
return _default;
}
}
private Guid _id;
public Guid Id { get { return _id; } }
internal static Context GetDefaultContext() {
//....Initializing the context here, e.g. assign a GUID
var ctx = new Context();
_id = GetGuid();
}
을 내 Compare
방법은 내가 같이 호출 :
Context
클래스에서 내가 수정할 수 있어야 정적 읽기 전용 속성 (
Default
)을가한다는 것이다
var myContext = Context.Default;
문제는 모든 Compare
호출에 대해 Context
(예 : 다른 GUIDS)을 초기화해야한다는 것입니다. 같은 뭔가 :
var myContext = Context.GetDefaultContext();
그러나 불행하게도 GetDefaultContext
가 내부로 표시됩니다 그래서 그것을에 공용 액세스 할 수 없습니다.
제 질문은 소스 코드를 수정하지 않고이 제한 사항을 해결하고 다른 GUID를 사용하여 매번 Context
초기화를 초기화 할 수 있습니까? 왜냐하면 지금은 항상 동일한 컨텍스트가 처음부터 동일한 GUID로 초기화됩니다. 여기
왜 직접 만들지 않습니까? 생성자는 public입니다. –
나 자신을 확인 하시겠습니까? 죄송합니다. 아이디어를 얻지 못했습니다. –
'var myContext = new Context();'하고 몇 가지 속성을 설정할 수 있습니다. 'Id'를 설정할 수 없으므로 GUID는 모두 0입니다. 이것이 문제인지 나는 모른다. –