do wwDotNetBridge local loBridge as wwDotNetBridge clear loBridge = createobject("wwDotNetBridge", "V4") if vartype(loBridge) = 'O' if loBridge.LoadAssembly("C:\_Siriusware\Main\Siriusware.Library\Siriusware.Library.AddressVerification\bin\Debug\Siriusware.Library.AddressVerification.dll") loOriginalAddress = loBridge.Createinstance("Siriusware.Library.AddressVerification.Address") * loVerifiedAddress = loBridge.Createinstance("Siriusware.Library.AddressVerification.VerifiedAddress") loOriginalAddress.Address1 ="2170 S Josephine St Unit 1&/>" loOriginalAddress.Address2 = "" loOriginalAddress.City = "Denver" loOriginalAddress.Country = "Bad" loOriginalAddress.State = "CO" loOriginalAddress.Zip = "80210" *!* loOriginalAddress = createobject('empty') *!* *!* addproperty(loOriginalAddress, 'Address1', "2170 S Josephine St Unit 1&/>") *!* addproperty(loOriginalAddress, 'Address2', "") *!* addproperty(loOriginalAddress, 'City', "Denver") *!* addproperty(loOriginalAddress, 'State', "CO") *!* addproperty(loOriginalAddress, 'Zip', "80210") *!* addproperty(loOriginalAddress, 'Country', "BAD") loVerifiedAddress = loBridge.InvokeStaticMethod("Siriusware.Library.AddressVerification.VerifiedAddress", ; "VerifyAddress", loOriginalAddress) ? loBridge.GetProperty(loVerifiedAddress, "Result") ? loBridge.GetProperty(loVerifiedAddress, "Zip") else _cliptext = loBridge.cErrorMsg ? loBridge.cErrorMsg endif endifand the code in the library is also very simple:
namespace Siriusware.Library.AddressVerification { //[ComVisible(true)] //[ClassInterface(ClassInterfaceType.AutoDual)] //[ProgId("SysManager.Address")] public class Address { public string Address1 { get; set; } public string Address2 { get; set; } public string City { get; set; } public string State { get; set; } public string Zip { get; set; } public string Country { get; set; } } //[ComVisible(true)] //[ClassInterface(ClassInterfaceType.AutoDual)] //[ProgId("SysManager.VerifiedAddress")] public class VerifiedAddress : Address { public string Result { get; set; } public string ErrorMsg { get; set; } public static VerifiedAddress VerifyAddress(Address originalAddress) { AppInfo.ModuleName = "SysManager"; VerifiedAddress verifiedAddress = new VerifiedAddress(); String address = originalAddress.Address1; String address2 = originalAddress.Address2; String city = originalAddress.City; String state = originalAddress.State; String zip = originalAddress.Zip; String country = originalAddress.Country; String result = ""; try { result = Cass.VerifyAddress(ref address, ref address2, ref city, ref state, ref zip, ref country); verifiedAddress.Result = result; verifiedAddress.Address1 = address; verifiedAddress.Address2 = address2; verifiedAddress.City = city; verifiedAddress.State = state; verifiedAddress.Zip = zip; verifiedAddress.Country = (country=="United States of America")?"USA":country; } catch (Exception ex) { Logging.Log(ex.ToString()); verifiedAddress.ErrorMsg = ex.ToString(); } return verifiedAddress; } } }Could it be because one class is a subclass of another?
>>? loBridge.GetProperty(loVerifiedAddress, "Result") >> ? loBridge.GetProperty(loVerifiedAddress, "Zip")>>
>>>loBridge = GetwwDotnetBridge() >>> >>>LOCAL loOriginalAddress as SysManager.Address >>>LOCAL loVerifiedAddress as SysManager.VerifiedAddress >>>loBridge.LoadAssembly("Sysmanager.dll") && assume it's in path >>>loOriginalAddress = loBridge.CreateInstance("SysManager.Address") >>>loOriginalAddress.Address1 ="2170 S Josephine St Unit 1&/>" >>>loOriginalAddress.Address2 = "" >>>loOriginalAddress.City = "Denver" >>>loOriginalAddress.Country = "Bad" >>>loOriginalAddress.State = "CO" >>>loOriginalAddress.Zip = "80210" >>> >>>loVerifiedAddress = loBridge.CreateInstance("SysManager.VerifiedAddress") >>>loVerifiedAddress = loVerifiedAddress.VerifyAddress(loOriginalAddress) >>>?loVerifiedAddress.Result >>>?loVerifiedAddress.Country >>>>>>
>>>>LOCAL loOriginalAddress as SysManager.Address >>>>LOCAL loVerifiedAddress as SysManager.VerifiedAddress >>>>loOriginalAddress = CREATEOBJECT("SysManager.Address") >>>>loOriginalAddress.Address1 ="2170 S Josephine St Unit 1&/>" >>>>loOriginalAddress.Address2 = "" >>>>loOriginalAddress.City = "Denver" >>>>loOriginalAddress.Country = "Bad" >>>>loOriginalAddress.State = "CO" >>>>loOriginalAddress.Zip = "80210" >>>> >>>> >>>>loVerifiedAddress = CREATEOBJECT("SysManager.VerifiedAddress") >>>> >>>>loVerifiedAddress = loVerifiedAddress.VerifyAddress(loOriginalAddress) >>>> >>>>?loVerifiedAddress.Result >>>> >>>>?loVerifiedAddress.Country>>>>
>>>>>>>loNet = loBridge.Createinstance("Westwind.WebConnection.TypePassingTests") >>>>>>> >>>>>>>*** Create ComValue objects for each parameter >>>>>>>loInt = loBridge.CreateComValue() >>>>>>>loInt.Value = INT(10) >>>>>>>loString = loBridge.CreateComValue() >>>>>>>loString.Value = "Hello World." >>>>>>>loDecimal = loBridge.CreateComValue() >>>>>>>loDecimal.Value = CAST( 5.22 as Currency) >>>>>>> >>>>>>>lobridge.InvokeStaticMethod("Westwind.WebConnection.TypePassingTests",; >>>>>>> "PassByReferenceStatic",; >>>>>>> loInt,loString,loDecimal) >>>>>>> >>>>>>>*** Look at the result values >>>>>>>? loInt.Value, loString.Value, loDecimal.Value >>>>>>>>>>>>>>
>>>>>>>>static public string VerifyAddress( ref string AddressLine1, ref string AddressLine2, ref string City, ref string State, ref string ZipCode, ref string Country)>>>>>>>>
>>>>>>>>lcResult = loBridge.Invokestaticmethod("Siriusware.Library.Cass", "VerifyAddress", @Address1, @Address2, @City, @State, @Zipcode, @Country) >>>>>>>> ?Address1 >>>>>>>> ?ZipCode >>>>>>>> >>>>>>>> ?lcResult >>>>>>>>>>>>>>>>
>>>>>>>>>>do wwDotNetBridge >>>>>>>>>>local loBridge as wwDotNetBridge >>>>>>>>>>loBridge = createobject("wwDotNetBridge", 'V4') >>>>>>>>>>if vartype(loBridge) = 'O' >>>>>>>>>> if loBridge.LoadAssembly("Siriusware.Library.dll") >>>>>>>>>> >>>>>>>>>> Address1 = "2170 S Josephine St Unit 1" >>>>>>>>>> Address2 = "" >>>>>>>>>> City = "Denver" >>>>>>>>>> State = "CO" >>>>>>>>>> Zipcode = "80210" >>>>>>>>>> Country = "USA" >>>>>>>>>> >>>>>>>>>> * string sResult = Cass.VerifyAddress( ref Address1, ref Address2, ref City, ref State, ref Zipcode, ref Country); >>>>>>>>>> >>>>>>>>>> loCass = loBridge.CreateInstance("Cass") >>>>>>>>>> if isnull(loCass) >>>>>>>>>> ? loBridge.cErrorMsg >>>>>>>>>> return >>>>>>>>>> endif >>>>>>>>>> >>>>>>>>>> *loPop.Connect("mail.gorge.net",587,.f.) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> * loPop.Connect("mail.gorge.net",587,.f.) >>>>>>>>>> *? loBridge.InvokeMethod(loPop,"Connect","pop3.gorge.net",110,.f.) >>>>>>>>>> >>>>>>>>>> ? loCass.VerifyAddress(@Address1, @Address2, @City, @State, @Zipcode, @Country) >>>>>>>>>> endif >>>>>>>>>>endif >>>>>>>>>>>>>>>>>>>>