Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Förutsatt att sammansättningsreferensen "Sammansättningsnamn nr 1" matchar "Sammansättningsnamn nr 2" kan du behöva ange körningsprincip
De två sammansättningarna skiljer sig åt i versions- och/eller versionsnummer. För att enandet ska ske måste du ange direktiv i programmets .config-fil, och du måste ange rätt starka namn på en sammansättning, vilket visas i följande exempelkod.
Exempel 1
Följande multifilexempel refererar till en sammansättning med två olika externa alias. Det här första exemplet bygger den äldre versionen av koden som skapar sammansättning CS1701_d.
// CS1701_a.cs
// compile with: /target:library /out:cs1701_d.dll /keyfile:mykey.snk
using System.Reflection;
[assembly:AssemblyVersion("1.0")]
public class A {
public void M1() {}
}
public class C1 {}
Exempel 2
Det här är koden som skapar den nyare versionen av sammansättning CS1701_d. Observera att den kompileras till en annan katalog än den äldre versionen, vilket är nödvändigt eftersom utdatafilerna har samma namn.
// CS1701_b.cs
// compile with: /target:library /out:c:\\cs1701_d.dll /keyfile:mykey.snk
using System.Reflection;
[assembly:AssemblyVersion("2.0")]
public class A {
public void M2() {}
public void M1() {}
}
public class C2 {}
public class C1 {}
Exempel 3
Det här exemplet konfigurerar de externa aliasen A1 och A2.
// CS1701_c.cs
// compile with: /target:library /reference:A2=c:\\cs1701_d.dll /reference:A1=cs1701_d.dll
extern alias A1;
extern alias A2;
// using System;
using a1 = A1::A;
using a2 = A2::A;
public class Ref {
public static a1 A1() { return new a1(); }
public static a2 A2() { return new a2(); }
public static A1::C1 M1() { return new A1::C1(); }
public static A2::C2 M2() { return new A2::C2(); }
}
Exempel 4
Det här exemplet anropar metoder med två olika alias för A. Följande exempel genererar C1701.
// CS1701_d.cs
// compile with: /reference:c:\\CS1701_d.dll /reference:CS1701_c.dll
// CS1701 expected
class Tester {
public static void Main() {
Ref.A1().M1();
Ref.A2().M2();
}
}