Ich erstelle eine C# -Skript -Komponente im SSIS -Datenflow, um einen API -Anruf aufzunehmen. Ich habe anonly Variablen identifiziert und an das Skript übergeben, aber es fehlt mir etwas. Für Variablen scheint der Benutzer :: StationDetailid nicht das Problem zu sein. Ich denke, mit dem Benutzer :: Geoapifyurl -Variable ist etwas schief. /> An die Benutzervariable Benutzer :: Latlon übergeben. = Benutzer :: GeoAPifyUrl < /li>
< /ol>
Ich habe die Ausdrücke getestet und beim Verstellen der URL auf Chrom erhalte ich die Rückgabedaten. Der Fehler, den ich erhalte, ist "[scriptMain] Fehler: Objektreferenz nicht auf eine Instanz eines Objekts festgelegt." < /P>
'' '< /p>
Ich erstelle eine C# -Skript -Komponente im SSIS -Datenflow, um einen API -Anruf aufzunehmen. Ich habe anonly Variablen identifiziert und an das Skript übergeben, aber es fehlt mir etwas. Für Variablen scheint der Benutzer :: StationDetailid nicht das [url=viewtopic.php?t=15738]Problem[/url] zu sein. Ich denke, mit dem Benutzer :: Geoapifyurl -Variable ist etwas schief. /> An die Benutzervariable Benutzer :: Latlon übergeben. = Benutzer :: GeoAPifyUrl < /li> < /ol> Ich habe die Ausdrücke getestet und beim Verstellen der URL auf Chrom erhalte ich die Rückgabedaten. Der Fehler, den ich erhalte, ist "[scriptMain] Fehler: Objektreferenz nicht auf eine Instanz eines Objekts festgelegt." < /P> '' '< /p> [code]#region Help: Introduction to the Script Component #endregion
#region Namespaces using System; using System.Collections.Generic; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; #endregion
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute] public class ScriptMain : UserComponent { private readonly int filename; // user::StationDetailID, sourced from db pkey INT IDENTITY(1,1) to pass onto results to SQL db private readonly string url; //user::GeoApifyURL, sourced from parameter+sql query to lat lon results+APIKeyParameter
public override void PreExecute() { base.PreExecute(); /* * Add your code here */ //Get global variables from ReadOnlyVariables selected string url = Variables.GeoApifyURL.ToString(); Int32 filename = Variables.StationDetailID; // useragent not used for this project
} public override void PostExecute() { base.PostExecute(); /* * Add your code here */ }
public override void CreateNewOutputRows() { { try { //set up the connections
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); //no header required for this project // set up response request System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse(); System.IO.MemoryStream ms = new System.IO.MemoryStream(); response.GetResponseStream().CopyTo(ms);
//Load data into buffer GeoResultsBuffer.AddRow(); GeoResultsBuffer.StationDetailID = filename; GeoResultsBuffer.GeoAddress = Convert.ToBase64String(ms.ToArray()); //Load data into GeoAddress //Rewind the ms object //Streams have a starting point. Need to go back to the beginning of the stream ms.Position = 0;
//Deserialize (Parse) the json //Need variable to put the deserialized json
GeoApifyResults gaar = new GeoApifyResults();
//Initialize the deserializer
DataContractJsonSerializer json = new DataContractJsonSerializer(gaar.GetType()); gaar = json.ReadObject(ms) as GeoApifyResults;
//Only try to read the object if json is able to deserialize the text if (gaar != null) {
//Get the Query Data foreach (GeoApifyResults gq in gaar.properties.GeoQuery) { GeoQueryBuffer.AddRow(); GeoQueryBuffer.StationDetailID = filename; GeoQueryBuffer.lat = gq.lat; GeoQueryBuffer.lon = gq.lon; GeoQueryBuffer.pluscode = gq.plus_code; } } } catch (Exception ex) { bool cancel = true; //specifies whether the execution should be cancelled ComponentMetaData.FireError(0, "ScriptMain", ex.Message, "", 0, out cancel);
} } }
}
// Define the GeoApifyResults class and related classes [DataContract] public class GeoApifyResults { internal readonly string plus_code; internal decimal lat; internal decimal lon;
[DataMember] public Datasource datasource { get; set; } [DataMember] public List results { get; set; } [DataMember] public Properties properties { get; set; } }
[DataContract] public class Datasource { [DataMember] public string sourceName { get; set; } [DataMember] public string attribution { get; set; } [DataMember] public string license { get; set; } [DataMember] public string url { get; set; } }
[DataContract] public class Result { [DataMember] public string formatted { get; set; } [DataMember] public string country { get; set; } [DataMember] public string country_code { get; set; } [DataMember] public string city { get; set; } [DataMember] public string postcode { get; set; } [DataMember] public string district { get; set; } [DataMember] public string neighbourhood { get; set; } [DataMember] public string suburb { get; set; } [DataMember] public string street { get; set; } [DataMember] public string housenumber { get; set; } [DataMember] public double lat { get; set; } [DataMember] public double lon { get; set; } [DataMember] public double distance { get; set; } [DataMember] public string result_type { get; set; } [DataMember] public string address_line1 { get; set; } [DataMember] public string address_line2 { get; set; } [DataMember] public string category { get; set; } [DataMember] public Timezone timezone { get; set; } [DataMember] public string plus_code { get; set; } [DataMember] public Rank rank { get; set; } [DataMember] public string place_id { get; set; } [DataMember] public Bbox bbox { get; set; } }
[DataContract] public class Timezone { [DataMember] public string Name { get; set; } [DataMember] public string OffsetStd { get; set; } [DataMember] public int OffsetStdSeconds { get; set; } [DataMember] public string OffsetDst { get; set; } [DataMember] public int OffsetDstSeconds { get; set; } [DataMember] public string AbbreviationStd { get; set; } [DataMember] public string AbbreviationDst { get; set; } }
[DataContract] public class Rank { [DataMember] public double importance { get; set; } [DataMember] public double popularity { get; set; } }
[DataContract] public class Bbox { [DataMember] public double lat1 { get; set; } [DataMember] public double lat2 { get; set; } [DataMember] public double lon1 { get; set; } [DataMember] public double lon2 { get; set; } }
[DataContract] public class Properties { [DataMember] public List GeoQuery { get; set; } } ''' [/code]
Arrays sind in Java kein primitiver Typ, aber sie sind auch keine Objekte, also werden sie nach Wert oder Referenz übergeben? Hängt es davon ab, was das Array enthält, beispielsweise Referenzen oder...
Ich habe eine einfache Web -API mit Microsoft Visual Studio 2012 MVC 4 ASP.NET C#erstellt.
Ich versuche zu testen, ob meine Postanforderungsmethode funktioniert. public class Object
{
Ich habe Jackrabbit 2.20.15 in einem Tomcat -Anwendungsserver. Die RMI -Unterstützung wird in neueren Releases veraltet/entfernt, sodass ich versuche, eine Verbindung zu einem Remote -Repository...