Fordító figyelmeztetés (2. szint) CS1701

Feltételezve, hogy az "Szerelvény neve #1" szerelvényhivatkozás megegyezik a "Szerelvény neve #2" értékkel, előfordulhat, hogy futásidejű szabályzatot kell megadnia

A két szerelvények a kiadási és/vagy a verziószámban különböznek. Az egyesítéshez meg kell adnia az irányelveket az alkalmazás .config fájljában, és meg kell adnia egy szerelvény helyes erős nevét, ahogy az az alábbi példakódban is látható.

1. példa

Az alábbi többfájlos minta egy két különböző külső aliast használó szerelvényre hivatkozik. Ez az első minta a kód régebbi verzióját hozza létre, amely szerelvény CS1701_d hoz létre.

// 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 {}  

2. példa

Ez az a kód, amely létrehozza a szerelvény újabb verzióját CS1701_d. Vegye figyelembe, hogy a régebbi verziótól eltérő könyvtárba fordítja le a fájlt, mivel a kimeneti fájlok neve megegyezik.

// 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 {}  

3. példa

Ez a minta beállítja az A1 és A2 külső aliasokat.

// 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(); }  
}  

4. példa

Ez a minta az A két különböző aliasával hívja meg a metódusokat. Az alábbi minta C1701-et hoz létre.

// 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();  
   }  
}