접착제 메타 데이터를 C#의 개체에 보낼 수 있습니까?C# 개체 메타 데이터
컨텍스트 : 네트워크를 통해 피어간에 메시지를 보내는 프레임 워크. 메시지는 임의의 직렬화 가능 사용자 정의 .NET 유형일 수 있습니다.
물론 메시지가 피어에 의해 전송되면 프레임 워크는 메타 데이터를 저장하는 Message 클래스로 객체를 래핑 할 수 있으며 수신기는이를 래핑 할 수 있습니다. 그러나 피어의 처리 방법으로 다른 피어에게 메시지를 다시 보낼 수 있지만 원본 메타 데이터는 유지하려고합니다. 사용자는 재발송을 제외하고 항상 Message.RealMessage
을 사용할 필요가 없습니다.
사전에 래핑 된 인스턴스를 유지하는 것에 대해 생각해 보았습니다. 사전에 래핑 된 인스턴스가 있고 해당 인스턴스를 다시 보내면 다시 검색 할 때 메시지를 다시 보내지 않을 수도 있고 여러 번 다시 보낼 수도 있습니다. 이것은 더 많은 메모리를 필요로합니다.
모든 솔루션? 어쩌면 C# 직접 개체에 붙어 추가 정보를 지원합니까? 일반적으로 내부 인터페이스가 필요하지만 사용자는 프레임 워크의 기본 클래스에서 모든 클래스를 파생시켜야합니다. 이는 불가능합니다.
편집 : 나는 여기에 WrappedMessage의 객체가 있지만 클래스 T에서 제공하는 인터페이스 만 사용할 수 있습니다. "라고 말하고 싶습니다.
가 어떻게 CLR을 가진 것 :-) 컴파일러되는 클래스에 대한 부분을 무시할 수 있습니까? 어쨌든 귀하의 질문에 대한 대답은 "아니오"입니다. 가장 가까운 속성은 객체가 아닌 유형/멤버/etc에 적용되는 속성입니다. – siride
WPF는 이런 종류의 속성에 대해 연결된 속성을 사용합니다. 본질적으로 그것들은 그들이 붙어있는 유형의 인스턴스에서 키 설정 한 정적 속성입니다. 패턴은 자연스러운 구문은 아니지만 확장 방법을 사용하면 자연스럽게 사용할 수 있습니다. – Will
@siride : 이것은 메모리 효율의 문제가 아닙니다. C#이 구문 적으로 지원되는지 여부는 질문입니다. 사용자의 시야에 잡음을 추가해서는 안됩니다. –