Opc.Da.Server scadaServer = null;
List scadaItems = null;
Opc.Da.Subscription scadaSubscription = null;
string scadaUrl = string.Format("opcda://{0}/{1}", hostname,
opcServerVendor);
scadaServer = new Opc.Da.Server(new OpcCom.Factory(), new Opc.URL(scadaUrl));
scadaServer.Connect();
var scadaItems = new List(); // I'm using a List, but cast back to a simple array using ToArray();
// Repeat this next part for all the items you need to subscribe
Opc.Da.Item item = new Opc.Da.Item();
item.ItemName = TagPath; // Where TagPath is something like device.channel.tag001;
item.ClientHandle = handle; // handle is up to you, but i use a logical name for it
item.Active = true;
item.ActiveSpecified = true;
scadaItems.Add(item);
Opc.Da.SubscriptionState subscriptionState = n