Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 01:30 Der er 19 kommentarer og
1 løsning

Object alias i C#?

I VB kan man lave Object alias som følgende;

Set DStats = Manager.Domains.Item(Domain.Name).Properties

og så requeste mine værdier ud med følgende:

DStats.Values("StatsLastConnection")

--------------

Er det ikke muligt i C#?
Avatar billede arne_v Ekspert
26. juli 2004 - 01:34 #1
Prøv:

???? DStats = Manager.Domains.Item[Domain.Name].Properties;

og referer til:

DStats.Values["StatsLastConnection"]

???? = den type som Manager.Domains.Item[Domain.Name].Properties nu er
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 01:36 #2
det er et field ...
Avatar billede wisen Nybegynder
26. juli 2004 - 09:25 #3
Jeg er ikke helt med... du laver et sæt at alle properties på et object for derefter at slå værdierne op via en streng ?!?
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 16:44 #4
hmm.... okay lad mig prøve at forklare det igen...
i VB kan man lave et alias sådant at man undgår dette her;

-------------------------

Dim Manager, Domain
Domain = "MyDomain"

Set Manager = CreateObject("G6FTPServer.Manager")

Dim LastConnection, LastIP, LastUser
LastConnection = Manager.Domains.Item(Domain).Properties.Values("LastConnection")
LastIP = Manager.Domains.Item(Domain).Properties.Values("LastIP")
LastUser = Manager.Domains.Item(Domain).Properties.Values("LastUser")

-----------------------

Det kan istedet laves meget smarterer sådant her:

Dim Manager, DStats, Domain
Domain = "MyDomain"

Set Manager = CreateObject("G6FTPServer.Manager")
Det DStats = Manager.Domains.Item(Domain).Properties

LastConnection = DStats.Values("LastConnection")
LastIP = DStats.Values("LastIP")
LastUser = DStats.Values("LastUser")

--------------------------

Så er det jeg vil vide om det er muligt at gøre i C#? For jeg har siddet og prøvet i et stykke tid nu uden held.

Forstår i det nu?
Avatar billede arne_v Ekspert
26. juli 2004 - 16:52 #5
Så er det som jeg beskrev først.
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 17:43 #6
men hvad skal "????" være?
Avatar billede arne_v Ekspert
26. juli 2004 - 17:45 #7
Den type som Properties nu er
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 17:46 #8
men det er jo et field?
Avatar billede arne_v Ekspert
26. juli 2004 - 17:55 #9
Derfor har det vel stadig en type !?
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 17:57 #10
ehh... hvad skulle det dog være? Jeg er ikke så stærk i C#, som du sikkert kan fornemme?
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 18:37 #11
Hvis jeg bruger GetType() på  Properties får jeg følgende "System.__ComObject" ... Kan det hjælpe dig?
Avatar billede arne_v Ekspert
26. juli 2004 - 18:56 #12
Så er ???? vel System.__ComObject ...
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 18:59 #13
så får jeg bare;

'System.__ComObject' is inaccessible due to its protection level
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 19:00 #14
men hvis jeg kalder hele strengen virker det fint?

string LastConnection = Manager.Domains.Item(Domain).Properties.Values("LastConnection")
Avatar billede arne_v Ekspert
26. juli 2004 - 19:03 #15
Hmm.

Jeg har aldrig arbejdet med COM.

Jeg tror at der er et eller andet jeg mangler at vide.
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 19:04 #16
Noget jeg mangler at fortælle eller noget du mangler at læse?
Avatar billede arne_v Ekspert
26. juli 2004 - 19:15 #17
Måske mangler jeg meget at læse.

Umiddelbart synes jeg ikke at der burde være nogen forskel på
om man assignede en reference over i en temporær reference.
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 20:30 #18
har prøvet det her men det giver mig bare et nyt object med G6 i... og det ønskede Properties;

// Link to the COM object
G6FTPServer.Manager G6 = new G6FTPServer.Manager();

/*
* Create instance of Domain.Properties
* Problem is that I just get a new instance of the G6 COM-object instead.
*/
G6FTPServer.Manager DStats = new G6.Domains.get_Item("IceMan").Properties;
Avatar billede tbm_iceman Nybegynder
26. juli 2004 - 23:18 #19
har også prøvet det her uden held;

using (SmallName = G6.Domains.get_Item("IceMan").Properties)
{
  Console.WriteLine(SmallName.get_Values("StatsLogin"));
}

får bare at vide at SmallName ikke eksisterer i class eller namespace
Avatar billede tbm_iceman Nybegynder
02. august 2004 - 17:25 #20
Lukker spm!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester