Κρατήστε τις ρυθμίσεις διαμεσολαβητή ASMX έξω από το παραγόμενο Reference.cs
Ρυθμίστε έναν πελάτη υπηρεσίας ASMX μέσω των δημόσιων ιδιοτήτων διαμεσολαβητή του και κρατήστε την απαραίτητη προσαρμογή αιτημάτων χωριστά από τα αναγεννημένα αρχεία αναφοράς.
Για έναν πελάτη ASMX που βασίζεται στο HttpWebClientProtocol του .NET Framework, ρυθμίστε τη δημόσια ιδιότητα Proxy πριν από την πρώτη λειτουργία δικτύου:
var service = new ReportsService();
service.Proxy = new WebProxy("http://proxy.example:8080")
{
Credentials = proxyAccount
};
Το ReportsService είναι η παραγόμενη κλάση και το proxyAccount προέρχεται από την ανάπτυξη. Τα διαπιστευτήρια της υπηρεσίας SOAP είναι ξεχωριστά. Αυτή η ανάθεση δεν χρειάζεται να επαναλαμβάνεται μέσα σε κάθε παραγόμενη λειτουργία.
Αν η αλλαγή αφορά μια υποκείμενη επιλογή αιτήματος ή την ενοργάνωση, χρησιμοποιήστε την παρακάμψιμη μέθοδο GetWebRequest(Uri) της παλαιότερης βάσης. Κρατήστε μια αντίστοιχη μερική δήλωση σε ξεχωριστό μεταγλωττισμένο αρχείο όταν η παραγόμενη κλάση είναι μερική· διαφορετικά ένας κατάλληλος παράγωγος πελάτης μπορεί να παρέχει την παράκαμψη. Καλέστε την υλοποίηση της βάσης και διατηρήστε την κανονική κατασκευή του αιτήματος.
Αυτή η τοποθέτηση επιβιώνει από την ενημέρωση της αναφοράς ιστού: η αναγέννηση μπορεί να αντικαταστήσει χειροκίνητες αλλαγές στο Reference.cs, ενώ οι επεκτάσεις που συντηρούνται χωριστά παραμένουν αναπαραγώγιμες.
Αλλάξτε μόνο τη συμπεριφορά αιτήματος που απαιτείται πραγματικά. Η αντιγραφή μιας λύσης KeepAlive μπορεί να επηρεάσει την επαναχρησιμοποίηση συνδέσεων και τον έλεγχο ταυτότητας που εξαρτάται από την κατάσταση της σύνδεσης.
Αυτό είναι το μοντέλο ASMX/.NET Framework. Το WCF και άλλες στοίβες SOAP έχουν δικές τους διεπαφές μεταφοράς. Επιλέξτε την υποστηριζόμενη ρύθμιση πελάτη πριν εισαγάγετε προσαρμοσμένη επέκταση.