Die häufigsten Kundenfragen (Teil 4)

Hier finden Sie eine Liste der häufigsten Kunden-Fragen. 

 

1. Ich habe eine generic Liste von einem Objekt vom Typ TInput (List<TInput>) und ich möchte diese Liste nun in eine generic Liste von Objekten vom Typ TOutput (List<TOutput) konvertieren. Was für Möglichkeiten habe ich?

Sie können zuerst die List<TInput> zu den generic Object casten und dann wieder zurück zum gewünschten Listentyp:

List<TInput> inputList = new List<TInput>();
List<TOutput> outputList = (List<TOutput>)((object) inputList);

Als zweite Möglichkeit können Sie mit einer Converter Delegate arbeiten, also die List<TInput> ConvertAll Methode verwenden (siehe https://msdn2.microsoft.com/en-us/library/73fe8cwf).

2. Wie kann ich einen Clone von einer generic Liste erstellen?

Wenn nur Members, auf die man über Eigenschaften zugreifen kann, kopiert werden müssen, können Sie folgende Methode verwenden (Diese Methode benutzt Reflection um alle Eigenschaften eines Typs zu ermitteln):

private static List<T> ShallowCopy<T>(

     List<T> originalTypeList,

     List<T> cloneList

   )

      {

            foreach (T item in originalTypeList)

            {

                object cloneItem = Activator.CreateInstance(typeof(T));

                foreach (PropertyInfo property in item.GetType().GetProperties())

                {

                    property.SetValue(cloneItem, property.GetValue(item, null), null);

                }

                cloneList.Add((T)cloneItem);

            }

            return cloneList;

}

Sie können dann beispielsweise eine Kopie eines List<Customer> Objektes mit einer code Zeile folgendermassen erstellen:

List<Customer> newList = ShallowCopy<Customer> (cus, new List<Customer>());

3. Was sind REST Dienste?

Der Zugriff auf diese Dienste läuft via einer URL. Der URI (Universal Resource Identifier) ist im Prinzip die API um auf REST Dienste zuzugreifen. Um eine bessere Vorstellung zu erhalten was genau REST Dienste sind, können Sie diesen Post über ADO.NET Data Services lesen. Ich denke, dass ADO.NET Data Services das beste Beispiel sind, um REST Dienste zu erklären.

4. Unterstützt Silverlight 2.0 Beta 1 REST Dienste?

Leider nur einen Teil davon. Silverlight unterstützt im Moment nur die Verbs GET und POST. DELETE und PUT werden nicht unterstützt.

5. Unterstützt Silverlight 2 Beta 1 WCF?

Im Moment wird nur das BasicHttpBinding binding unterstützt. Die Unterstützung weiterer bindings ist im Moment nicht vorgesehen.