문제

.NET 2.0에서 소비 할 수있는 라이브러리를 만들 수 있으며, .NET 3.0+ 소비자가 원하는 경우 데이터 콘텐츠로부터 혜택을받을 수 있습니까?

다른 데이터 콘텐츠 관련 속성이 포함 된 라이브러리 이외의 기술적 장애물은 .NET 3.0 라이브러리입니다. 이러한 속성을 ExtensionMethodattribute와 유사한 방식으로 수동으로 구현할 수 있습니까?

도움이 되었습니까?

해결책

.NET 3.0 속성을 어셈블리에 추가 한 다음 .NET 2.0 만있는 컴퓨터에서이를 실행하면 런타임에 사용할 수없는 어셈블리에서 코드에 속성이있는 것입니다.

.NET 2.0 응용 프로그램이 실제로 속성을 읽으려고 시도하지 않는 한 대부분은 잘 작동합니다. 예를 들어, 다음 코드는 System.servicemodel.dll을로드하지 않기 때문에 filenotFoundException을 던집니다.

[ServiceContract] // Attribute from System.ServiceModel.dll
class MyClass
{
  ...
}
...
    // this will throw a FileNotFoundException if System.ServiceModel.dll is not available
    object[] attributes = typeof(MyClass).GetCustomAttributes(false);

따라서 누가 수업 도서관을 소비 할 것인지 모른다면, 당신은 당신이 그들을 깨지 않을 것이라는 100%를 보장 할 수 없습니다.

위의 내용은 System.serviceModel.dll (또는 사용중인 속성이 포함 된 기타 어셈블리)의 사본 또는 시스템을 사용하여 시스템을 사용하는 GetCustomAttributes의 과부하를 사용하여 피할 수 있습니다. 사용 가능한 것으로 알려진 속성 만 읽습니다.

다른 팁

.NET 2.0 및 .NET 3.0 및 3.5는 동일한 CLR (2.0)을 사용하므로 어려움이 없어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top