Tak s tímhle nesouhlasím. Pokud Váš program nebude z referencované assembly nic volat, tak tam ta assembly být nemusí. Reference sama o sobě tomu nevadí. Teprve v momentě, kdy v kódu bude volání, tak se vyhodí výjimka např.:
System.IO.FileNotFoundException: Could not load file or assembly 'itextsharp, Version=5.1.2.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca' or one of its dependencies. The system cannot find the file specified.
File name: 'itextsharp, Version=5.1.2.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca'
at Form1.button1_Click(Object sender, EventArgs e)
Aby šla výjimka ošetřit, tak ale musí být kód používající tu assembly v jiné metodě např.:
private void button1_Click(object sender, EventArgs e)
{
try
{
MessageBox.Show("Kod před použitím iTextSharp.");
UseITextSharp();
}
catch (System.IO.FileNotFoundException ex)
{
MessageBox.Show(ex.ToString());
}
}
private void UseITextSharp()
{
var document = new Document();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
MessageBox.Show("Kod před použitím iTextSharp.");
var document = new Document();
}
catch (System.IO.FileNotFoundException ex)
{
MessageBox.Show(ex.ToString());
}
}
Kód tlačítka 1 zobrazí první MessageBox a pak ošetřenou vyjimku FileNotFoundException, kód tlačítka 2 způsobí, že aplikace zobrazí neošetřenou vyjimku FileNotFoundException (MessageBox se nezavolá).
|