Когда, если когда-либо, безопасно ли обертывать за условным кодом, который требует сборки, которая может отсутствовать?Когда безопасно обертывать условный код, требующий сборки, которая может отсутствовать?
Например:
if (SafeCheckForOptionalAssembly()) {
// Code requiring an optional assembly
} else {
// fallback: don't rely on optional assembly
}
Непосредственно вопросы, связанные:
- Имеет ли значение, если условно включен код использует тип, содержащийся в дополнительном сборе? (например,
var foo = new MyClassInOptionalAssembly()
) - Изменяется ли поведение, если условно включенный код завернут в метод?
Я поместил код, требующий дополнительной сборки в метод. Таким образом, он работал в .NET 3.5 и 4. Но я не уверен, что это гарантировано не подведет. Код не удался, если указанный код был включен напрямую. – Vlad
, который не будет работать - по крайней мере, не во всех случаях/на всех платформах ... почему бы не использовать «интерфейс», включить реализацию по умолчанию, а затем проверить, присутствует ли дополнительная сборка (реализация этого интерфейса) и, если это так, от Ассамблеи в противном случае использовать реализацию по умолчанию? – Yahia